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 先看左邊有序還...