题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5761
【题意】船在(0,a),存在一个恒定向右的速度v2,一个始终指向源点的速度v1,问到达源点的时间。无法到达输出Infinity。
【分析】方法来自题解
设船到原点的距离是r,容易列出方程
dtdr=v2cosθ−v1
dtdx=v2−v1cosθ
上下界都是清晰的,定积分一下:
0−a=v2∫0Tcosθdt−v1T
0−0=v2T−v1∫0Tcosθdt
直接把第一个式子代到第二个里面
v2T=v2v1(−a+v1T)
T=v12−v22v1a
【代码】
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
int a,v1,v2;
while(~scanf("%d %d %d",&a,&v1,&v2)){
if(a==0){
printf("%.010lf\n",0);
continue;
}
if(v1<=v2){
cout<<"Infinity\n";
continue;
}
double ans=a*v1;
double tmp1=v1;
double tmp2=v2;
tmp1*=tmp1;
tmp2*=tmp2;
ans/=(tmp1-tmp2);
printf("%.010lf\n",ans);
}
}