题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5761
杭电OJ的题目直接贴过来好麻烦啊,因为有的数据他是以贴图形式给出的,在博客这就显示不正确,干脆贴链接。
这道题其实就是个高中物理题一样,一开始小船是在Y轴上(0,a)点朝着原点的,并且有一个一直不变的速度V1,但是水流也有速度,速度是V2,所以小船会被冲走,当到达某个角度的时候,x轴的分速度大于或者等于河流速度,小船就会慢慢趋向于原点。题目要你求出小船达到原点所花费的时间,当然小船不一定能到达原点的,那就输出Infinity。
这道题我当时也没写出来,毕竟菜的不行,用积分推出公式你就胜利的了。当然,你或许会用微分强行解出来,我当时就是强解解不出来,后来看到绍兴一中官方的题解,发现原来也不需要强解,绕一绕就好了。(虽然我是百思不得其姐为什么可以这么绕着来做)
下面是我看了题解后自己的一次推导,这属于当时高中时候把错题写进错题本然后再拿出来做一次然后发现自己还是不会做那种(虽然这里是做出来了- -)
#include
int main()
{
int v1,v2,a;
while(scanf("%d%d%d",&a,&v1,&v2)!=EOF)
{
if(a==0)
printf("0.0000000000\n");
else if(v10&&v1==v2))
printf("Infinity\n");
else
printf("%.10lf\n",1.0*v1*a/(1.0*v1*v1-1.0*v2*v2));
}
return 0;
}