二分 小車問題

2021-06-06 10:32:05 字數 1179 閱讀 1762

4    小車問題

源程式名            car.???(pas, c, cpp)

可執行檔名        car.exe

輸入檔名          car.in

輸出檔名          car.out

【問題描述】

甲、乙兩人同時從a地出發要盡快同時趕到b地。出發時a地有一輛小車,可是這輛小車除了駕駛員外只能帶一人。已知甲、乙兩人的步行速度一樣,且小於車的速度。問:怎樣利用小車才能使兩人盡快同時到達。

【輸入】

僅一行,三個資料分別表示ab兩地的距離s,人的步行速度a,車的速度b。

【輸出】

兩人同時到達b地需要的最短時間。

【樣例】

car.in                                  car.out

120 5 25                              9.6000000000e+00

是一道o(1)演算法的題。但是可以用二分搞,要簡單一些。

容易想到的是,必然小車只載每乙個人各一次。否則一定可以等效成這樣。

因此我們二分第乙個人坐車的長短,以兩個人的時間為判斷依據。

設第二個人坐車長短為x,第乙個人和第二個人的總時間分別是t1,t2

容易想到,必然t2和x正相關,t1和x負相關。

#include #include double mid;

const double eps = 1e-8;

double t1,t2,t3,l3,l4;

long s,a,b;

long getint()

do rs=(rs<<3)+(rs<<1)+tmp-'0';

while (isdigit(tmp=getchar()));

return sgn?rs:-rs;

}void calc()

int main()

if (t1-t2>eps)

r = mid-1e-9;

else if (t1-t2<-eps)

l = mid+1e-9;

} return 0;

}

P1258 小車問題

題目入口 這就是個小學奧數題 沒錯,小學奧數都能難倒我了 該好好學數學了 這第一天的 水題 讓我感到難受 車只往返一次用時最短 別問我為什麼 分析圖如下 x s 2x x 總距離s 人速a 車速b 當乙走x距離,車接甲到x s 2x處共行駛x s 2x s 2x路程與乙匯合,此後車接乙駛向終點於甲同...

P1258 小車問題

題意 給出路途距離,給出車的速度,給出兩個人的速度 兩人速度相同 題目給出的車的速度一定大於車的速度 車一次只能載一人,要求用最短的時間,同時走完這段路程 思路 題目給出的車的速度一定大於車的速度 要想最短的時間同時到達目的地,我們就要先載乙個人,然後再丟下她去載另乙個人 於是,我們要確定的就是丟下...

二分查詢問題

常見的二分查詢問題 1 給定排序陣列求乙個給定數在陣列中的下標,如果不存在就返回應該插入的位置 int searchinsert int a,int n,int target else return start 2 給定乙個 排序陣列,然後經過旋轉後,查詢給定值是否在陣列中。思路 1 先看左邊有序還...