hdu1275 追擊相遇問題

2021-08-21 12:42:28 字數 1231 閱讀 3551

problem description

外號叫「豬頭三」的小學生在數學課上,經常遇到兩車相遇或追及的方程題,經過長時間的練習,他發現了許多規律,然而他不懂計算機,他想請你幫忙編寫乙個電腦程式,解決他的問題。

題目的描述是這樣的:甲、乙兩地相距l公里,a車的速度為va公里/小時,b車的速度為vb公里/小時,a車和b車開始時分別在甲、乙兩地,現在兩車同時從甲、乙兩地出發,並且開始計時,兩車到達甲、乙兩地後返回繼續行駛,這樣會有許多次追及或相遇的時候,我們假定稱追及或相遇的時候為「重合」,請輸出「重合」時的時間以及離甲、乙兩地較近地的距離。

input

本題有多個測試資料組,第一行為測試資料組數n,接著是n行資料,每行的資料按順序分別為實數型別的距離、a車的速度、b車的速度以及整數型別的第幾次「重合」的序號數(<=1000)。

output

time=***x.*** dist=xx.***輸出的精度為精確到小數點後三位。

sample input

120.7 90.0 90.0 10

100.5 80.7 69.3 1

sample output

time=12.741 dist=60.350

time=0.670 dist=46.431

①兩岸型:

第n次迎面碰頭相遇,兩人的路程和是(2n-1)s

第n次背面追及相遇,兩人的路程差是(2n-1)s

②單岸型:

第n次迎面碰頭相遇,兩人的路程和為2ns

第n次背面追及相遇,兩人的路程差為2

③環型:

環型主要分兩種情況,一種是甲、乙兩人同地同時反向迎面相遇(不可能背面相遇),

一種是甲、乙兩人同地同時同向背面追及相遇(不可能迎面相遇)。

分開討論如下:

(一)甲、乙兩人從a地同時反向出發:

第n次迎面相遇共走了n圈。

(二)甲、乙兩人從a地同時同向出發:

第n次背面追及相遇,路程差為n圈。

#include #include #include #include #include using namespace std;

int main()

sort(dist,dist+j);

x1=va*dist[n];

while(1)

if(l-x1

printf("time=%.3lf dist=%.3lf\n",dist[n],x1);

}return 0;

}

HDU 1275(兩車追及或相遇問題)

每次兩車相遇時和追及到時 即兩車在同一位置 都算作一次 重合 可知兩者的公式為 本題建議使用 scanf 和 printf,cin 和 cout 可能超時 include include include using namespace std const int maxn 1005 double t...

hdu 1713 相遇週期

思路 這題講道理題目有問題,週期應該是天數除以圈數吧。本質的問題還是求兩個週期的最小公倍數,如果換成整數,就很好寫了,問題現在是分數,分數求最小公倍數的,是分子求最小公倍數,分母求最大公約數,然後就是溢位的問題,全用long long來表示。include using namespace std 求...

hdu 1713 相遇週期

思路 這題講道理題目有問題,週期應該是天數除以圈數吧。本質的問題還是求兩個週期的最小公倍數,如果換成整數,就很好寫了,問題現在是分數,分數求最小公倍數的,是分子求最小公倍數,分母求最大公約數,然後就是溢位的問題,全用long long來表示。include using namespace std 求...