题意分析:
在直角坐标系中,小船起点在(0, a)位置,终点在 (0, 0)位置,小船相对于 静水的速度是 V1 , 水流速度是 V2 (方向同 X 轴正方向 )。
行船过程中,V1 的方向一直朝向终点,V2 方向不变。(不考虑单位)求 起点到终点 所用时间。
易错点:1.把题意看错了,觉得直接分解速度,类似物理上的小船过河问题,觉得V1始终垂直 终点方向的河对岸就行了。其实不然,正确的题意是,V1 的方向要不断调整,
期间V1 一直朝向终点(0, 0)。(即类似钟表指针与表中心的关系)
2.把V1 的方向,看做 是船行走的方向。其实不然,正确的题意是,船的行走轨迹是 合速度(V1与V2依据平行四边形定则矢量合成)方向,是个弧,而不是直线。
我的AC代码
#include <iostream> //AC
#include <cstdio>
using namespace std;
int main()
{
int a;
double v1,v2;
while(scanf("%d%lf%lf",&a,&v1,&v2)!=EOF){
if(a == 0)
printf("0\n");
else if(v1<=v2)
printf("Infinity\n");
else{
double ans = a*v1/(v1*v1-v2*v2);
printf("%.10f\n",ans);
}
}
return 0;
}
详细解答:
对于else 里面的情况分析 (后期更新 ---- 竖直方向 要改为 v1 方向 )