Rower Bo
题目连接:
http://acm.hdu.edu.cn/showproblem.php?pid=5761
Description
There is a river on the Cartesian coordinate system,the river is flowing along the x-axis direction.
Rower Bo is placed at (0,a) at first.He wants to get to origin (0,0) by boat.Boat speed relative to water is v1,and the speed of the water flow is v2.He will adjust the direction of v1 to origin all the time.
Your task is to calculate how much time he will use to get to origin.Your answer should be rounded to four decimal places.
If he can’t arrive origin anyway,print”Infinity”(without quotation marks).
Input
There are several test cases. (no more than 1000)
For each test case,there is only one line containing three integers a,v1,v2.
0≤a≤100, 0≤v1,v2,≤100, a,v1,v2 are integers
Output
For each test case,print a string or a real number.
If the absolute error between your answer and the standard answer is no more than 10−4, your solution will be accepted.
Sample Input
2 3 3
2 4 3
Sample Output
Infinity
1.1428571429
Hint
题意
有一个船在(0,a),船头的方向一直指着(0,0)位置,速度是v1,然后有一个水流速度是v2,朝着x轴正半轴方向流。
问你什么时候船到达(0,0)位置。
题解:
傻逼物理题,高中考了无数遍,嘿嘿嘿。
程书习题2-29 狐狸追猎犬
解释是我百度的:
有一只狐狸以不变速度v1沿着直线AB逃跑,一猎犬以不变的速率v2追击,其运动方向始终对准狐狸。某时刻狐狸在F处,猎犬在D处,FD⊥L(如图)
设运动时间为t,任意时刻ti对应一个v2与竖直方向所成的α角度
若追上
则在水平方向上:∫<0,t> v2sinα dt=v1t………………③
在竖直方向上:∫<0,t>v2cosα dt=L…………………④
尽管列出这两个方程,我们仍有一个条件没有用到,那就是猎犬速度方向始终朝向狐狸。于是我们想到了相对运动
若以狐狸建立参考系,则猎犬在一个直线运动,其路程即为L。由于有
v绝对=v相对+v牵连
所以 猎犬对狐狸在每个时刻的相对速度 v’=v2-v1sinα
如此便有 ∫<0,t> v’dt=L
即 ∫<0,t> v2dt-∫<0,t> v1sinα dt=L………………⑤
联立③和⑤,即可得到t= v2L/(v2^2-v1^2)
代码
#include<bits/stdc++.h>
using namespace std;
double a,v1,v2;
void solve(){
if(a==0){
double ans = 0;
printf("%.12f\n",ans);
return;
}
if(v1<=v2){
printf("Infinity\n");
return;
}
printf("%.12f\n",a*v1/(v1*v1-v2*v2));
}
int main(){
while(cin>>a>>v1>>v2)solve();
return 0;
}