luogu 1258 小車問題 小學奧數

2022-05-11 16:59:41 字數 989 閱讀 8697

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

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

兩人同時到達b地需要的最短時間,保留6位小數。

120 5 25
9.600000
小學奧數題。

|---s1--|--s2--|---s3--|

---------------········ 甲

---------------

|-------- 車

|---------------

········--------------- 乙

顯然,要保證甲的步行時間與乙的步行時間相等,所以甲乙的行程是對稱的,即\(s_1=s_3\)。又要保證總時間最短,所以小車應該在半路回頭去接乙而不是原地不動等乙來。由此,可繪出上圖。

由圖可得知,甲步行到終點的時間 和 車回頭接乙再帶乙到終點的時間 相等。就樣例而言,車速是步行速度的\(5\)倍,故車走的路程是人走的路程的\(5\)倍,車比人多走了\(4\)倍。又車與人共同行走了\(s_3\)的路程,所以車比人多走的是\(2*s_2\),是人走的\(4\)倍,故\(s_2=2*s_3\). 故\(s_2\)是兩份,\(s_1\)與\(s_3\)都是乙份。

而總時間可以直接看車走的路程,是整條路的長度加上折回來又折回去的路程,即\((1+2+1)+2*2=8\)份。

全部換成字母的話即為$$s+\frac-1}+2}*(\frac-1)$$

時間複雜度\(o(1)\).

#include using namespace std;

typedef long long ll;

int main()

P1258 小車問題

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

P1258 小車問題

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

洛谷p1258 小車問題

嚇人,心有餘悸 小車問題 傳送門 洛谷演算法標籤 行吧它居然是個二分 解方程的我抖抖發瑟 作為乙個寫了一頁演草紙才解出來的方程,顯然我要好好寫一寫 希望不會半途而廢 設總路程為s,放下甲去接乙的時間為t,車的速度 為b,人的速度為a 最短時間為x。那麼首先得到兩個式紙 bt a x t s at a...