BZOJ1857:[SCOI2010]傳送帶——題解

http://www.lydsy.com/JudgeOnline/problem.php?id=1857

Description

在一個2維平面上有兩條傳送帶,每一條傳送帶可以看成是一條線段。兩條傳送帶分別為線段AB和線段CD。lxhgww在AB上的移動速度為P,在CD上的移動速度為Q,在平面上的移動速度R。現在lxhgww想從A點走到D點,他想知道最少需要走多長時間

Input

輸入數據第一行是4個整數,表示A和B的坐標,分別為Ax,Ay,Bx,By 第二行是4個整數,表示C和D的坐標,分別為Cx,Cy,Dx,Dy 第三行是3個整數,分別是P,Q,R

Output

輸出數據為一行,表示lxhgww從A點走到D點的最短時間,保留到小數點后2位

Sample Input

0 0 0 100
100 0 100 100
2 2 1


Sample Output

136.60

HINT

對于100%的數據,1<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000
1<=P,Q,R<=10

——————————————————————————————

首先我們取AB一點E,CD一點F,則我們跑了AE+EF+FD。

考慮將其中一個點固定住,那么顯然對于另一個點我們三分即可求出這個店的位置(顯然該點有最小值,他的左右兩點都比他大,所以為單峰函數)。

那么對于最開始的點,我們同樣也是單峰函數,也可以三分(通過神奇的代數幾何可以證明)

所以這題就是三分套三分。

PS:因為這題x1與x2可能相同,所以不能單獨三分x或y,必須同時三分(不然代碼量太大了)

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
typedef double dl;
const int N=100;
dl ax,ay,bx,by,cx,cy,dx,dy,P,Q,R;
inline dl dis(dl x,dl y,dl xx,dl yy){return sqrt((x-xx)*(x-xx)+(y-yy)*(y-yy));
}
dl sff(dl x,dl y){dl lx=cx,rx=dx,ly=cy,ry=dy;dl lfx,lfy,rfx,rfy;for(int i=1;i<=N;i++){lfx=(lx*2+rx)/3;lfy=(ly*2+ry)/3;rfx=(lfx+rx)/2;rfy=(lfy+ry)/2;dl t1=dis(lfx,lfy,dx,dy)/Q+dis(lfx,lfy,x,y)/R;dl t2=dis(rfx,rfy,dx,dy)/Q+dis(rfx,rfy,x,y)/R;if(t1<t2){rx=rfx;ry=rfy;}else{lx=lfx;ly=lfy;}}return dis(lx,ly,dx,dy)/Q+dis(lx,ly,x,y)/R+dis(x,y,ax,ay)/P;
}
dl sfe(dl lx,dl rx,dl ly,dl ry){dl lex,ley,rex,rey;for(int i=1;i<=N;i++){lex=(lx*2+rx)/3;ley=(ly*2+ry)/3;rex=(lex+rx)/2;rey=(ley+ry)/2;if(sff(lex,ley)<sff(rex,rey)){rx=rex;ry=rey;}else{lx=lex;ly=ley;}}return sff(lx,ly);
}
int main(){cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy>>P>>Q>>R;printf("%.2lf\n",sfe(ax,bx,ay,by));return 0;
}

?

轉載于:https://www.cnblogs.com/luyouqi233/p/8007039.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453490.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453490.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453490.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mnt/sdcard和storage/sdcard的區別

/mnt 目錄&#xff0c;熟悉linux的人都清楚&#xff0c;linux默認掛載外部設備都會掛到這個目錄下面去&#xff0c;如將sd卡掛載上去后&#xff0c;會生成一個/mnt/sdcard 目錄。 storage/sdcard 目錄&#xff0c;這是一個軟鏈接&#xff08;相當于windows的文件夾的快捷方式&a…

kd樹的原理

kd樹就是一種對k維空間中的實例點進行存儲以便對其進行快速檢索的樹形數據結構&#xff0c;可以運用在k近鄰法中&#xff0c;實現快速k近鄰搜索。構造kd樹相當于不斷地用垂直于坐標軸的超平面將k維空間切分。 ?? 假設數據集\(T\)的大小是\(m*n\),即\(T{x_1,x_2,...x_m}\),其中…

應聘華為的朋友小心了,應聘華為的悲慘遭遇!

以下內容全部真實&#xff0c;為本人親身經歷。可隨時進行當面對質。 本人女朋友&#xff0c;原本是西安一家企業里面的行政助理&#xff0c;工作比較穩定&#xff0c;收入不高&#xff0c;但也基本夠她用了。 一天&#xff0c;我的一個同學&#xff08;華為員工&#xff09;說…

力軟 java主從表保存_JAVA常用知識總結(十二)——數據庫(二)

MySQL主從熱備份工作原理簡單的說&#xff1a;就是主服務器上執行過的sql語句會保存在binLog里面&#xff0c;別的從服務器把他同步過來&#xff0c;然后重復執行一遍&#xff0c;那么它們就能一直同步啦。整體上來說&#xff0c;復制有3個步驟&#xff1a;作為主服務器的Maste…

HttpClient和DefaultHttpClient

HttpClient 是接口&#xff0c;DefaultHttpClient是實現這個接口的子類 public interface HttpClient {/*** Obtains the parameters for this client.* These parameters will become defaults for all requests being* executed with this client, and for the parameters of…

Go語言版黑白棋

1、游戲說明2、無邊框窗口實現3、背景圖、最小化、關閉窗口4、界面其它設計5、黑白子提示閃爍效果6、落子7、初始化棋子、改變角色8、倒計時9、吃子10、棋子個數統計、勝負判斷11、機器落子 轉載于:https://www.cnblogs.com/tennysonsky/p/8442827.html

vue使用render渲染jsx

vue&jsx文檔 vue實例屬性 // App.ts import hBtn from ./components/hBtn import hUl from ./components/hUlexport default {data(){return {theme: "mdui-theme-pink",accent: "mdui-theme-accent-pink",users:[aoo, boo, coo]}},methods:{},render(…

java中的多線程有什么意義_Java多線程與并發面試題(小結)

1&#xff0c;什么是線程&#xff1f;線程是操作系統能夠進行運算調度的最小單位&#xff0c;它被包含在進程之中&#xff0c;是進程中的實際運作單位。程序員可以通過它進行多處理器編程&#xff0c;你可以使用多線程對運算密集型任務提速。比如&#xff0c;如果一個線程完成一…

IT必須掌握的常用命令

一&#xff0c;ping      它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說&#xff0c;ping命令是第一個必須掌握的DOS命令&#xff0c;它所利用的原理是這樣的&#xff1a;網絡上的機器都有唯一確定的IP地址&#xff0c;我們…

Callable類

&#xff08;一&#xff09; Callable和Runnable比較相似&#xff0c;都可以用來實現線程任務。但callable使用了泛型設計&#xff0c;使用一個V類型值&#xff0c;能夠 在執行結束后返回一個V類型的值。而Runable只會返回一個void&#xff0c;不能夠獲得執行的結果。 &#x…

Java——線程的創建,線程池

線程 多線程就是一個程序中有多個線程在同時執行。 多線程下CPU的工作原理 實際上&#xff0c;CPU(中央處理器)使用搶占式調度模式在多個線程間進行著高速的切換。對于CPU的一個核而言&#xff0c;某個時刻&#xff0c;只能執行一個線程&#xff0c;而CPU的在多個線程間切換速度…

初級第一旬05— 藍字觀試題

準提法網絡佛學院 準提法教學平臺 一、高七師提倡初學準提法者&#xff0c;應先觀藍字&#xff0c;在《顯密圓通成佛心要集》中有依據嗎&#xff1f; 二、正修的時候&#xff0c;如果不得不中斷怎么辦&#xff1f; 三、藍字觀有幾種手印&#xff1f;可以單獨使用嗎&#xff1f;…

java并查集找朋友圈_圖—并查集(解決朋友圈問題)

圖也是一種 非線性結構&#xff0c;是由多個頂點組成的關系集合組成的一種數據結構。圖可以分為兩種&#xff0c;無向圖和有向圖。★圖的定義:★典型問題&#xff1a;利用圖能夠解決很多問題&#xff0c;這里有一個較為典型的問題&#xff0c;假如已知有n個人和m對好友關系(存于…

技術這東西,不可不看,不可全看.

最近忙著玩開心,好久沒來CSDN了,首頁上有90后程序員的消息了,稍微感慨一下,曾幾何時,自己這個80后還被70后的前輩所笑話,轉眼就成了5年經驗的老油條了.呵呵. 5年,個人認為經歷還是有些代表性的,就跟剛入行或者即將入行的哥們交個底吧,這5年到底學到了什么. 如果你看完這篇文…

rand.nextint()

自從JDK最初版本發布起&#xff0c;我們就可以使用java.util.Random類產生隨機數了。在JDK1.2中&#xff0c;Random類有了一個名為nextInt()的方法&#xff1a;public int nextInt(int n)給定一個參數n&#xff0c;nextInt(n)將返回一個大于等于0小于n的隨機數&#xff0c;即&a…

Android開發常用的插件及工具

1、GitHub,這個不管是做安卓還是其他&#xff0c;只要是開發就必上的網站&#xff0c;也是天朝沒有墻掉為數不多的網站 2、Stack OverFlow,這個和上面一樣&#xff0c;國外非常著名的問答網站&#xff0c;在上面基本上很多問題都可以得到解決 3、Genymotion模擬器&#xff0c;搞…

java poi 設置標題_poi生成Word時指定文本樣式,如“正文”,“標題1”,“標題2”等...

POI生成Word時&#xff0c;設置段落的樣式String style "2"; //標題2的樣式XWPFParagraph xwpfParagraph doc.insertNewParagraph(run);xwpfParagraph.setStyle(style);其實設置其他的樣式都一樣。例如&#xff1a;你想設置你的樣式為“標題2”(“標題2”只是你在w…

使用python做最簡單的爬蟲

使用python做最簡單的爬蟲 --之心 #第一種方法import urllib2 #將urllib2庫引用進來responseurllib2.urlopen("http://www.baidu.com") #調用庫中的方法&#xff0c;將請求回應封裝到response對象中htmlresponse.read() #調用response對象的read&#xff08;&#x…

SurfaceView介紹

SurfaceView介紹 通常情況程序的View和用戶響應都是在同一個線程中處理的&#xff0c;這也是為什么處理長時間事件&#xff08;例如訪問網絡&#xff09;需要放到另外的線程中去&#xff08;防止阻塞當前UI線程的操作和繪制&#xff09;。但是在其他線程中卻不能修改UI元素&…

產品與市場,究竟哪一個重要

上篇我們講到B2C繼B2B和C2C紅透之后&#xff0c;也正在迅速的竄紅。這一看法可不是我老邢杜撰&#xff0c;憑空想出來的&#xff0c;我們也可以從近期的主要媒體雜志上看到這個彌端。《二十一世紀報道》、《創業家》、《市場與營銷》這些經濟類雜志&#xff0c;均用大幅篇幅甚至…