题意:女孩在半径为R圆形跑道上以速度V1跑步,一个男孩以速度 V2从圆心出发去追她。在任意时刻,他们的连线经过圆心。已知男孩能跑的最大距离,问男孩能否追上女孩。
思路:
代码如下:
#include <cstdio>
#include <cmath>
using namespace std;
const double eps = 1e-6;
double V1,V2,R,D;
int dcmp(double x)
{
if(fabs(x) < eps)
return 0;
else if(x < 0)
return -1;
else
return 1;
}
int main(void)
{
//freopen("input.txt","r",stdin);
int T;
scanf("%d", &T);
while(T--){
scanf("%lf %lf %lf %lf", &V1,&V2,&R,&D);
if(dcmp(D - R / V1 * V2 *asin(V1/ V2)) >= 0)
puts("Wake up to code");
else
puts("Why give up treatment");
}
return 0;
}
几点感悟:知识是相通的,ACM中可能也会涉及到其他学科的知识。去应用。