您的位置:首页 > 其它

[杂题]HDOJ5515 Game of Flying Circus

2015-10-31 19:24 295 查看
嗯。。。这是一道水题。。。

鉴于还没人写这题的题解, 那我就来写一发。

题意:有个边长为300米的正方形

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> PI;
const int N=1e5;
const double eps=1e-5;
const LL mod=1e9+7;

int main()
{
int t, ca=1;
scanf("%d", &t);
while(t--)
{
double t, v1, v2;
scanf("%lf%lf%lf", &t, &v1, &v2);
printf("Case #%d: ", ca++);
if(v1==v2)
{
puts("Yes");
continue;
}
double tt1=300*sqrt(2.0)/v1;  // a dao 3
double tt2=600.0/v2;          // b dao 3
double v12=v1*v1, v22=v2*v2;
double t1=300.0/v1;  // a dao 4
double t2=900.0/v2;  // b dao 4
if(t1>=t2)
{
puts("No");
continue;
}
if(tt1<=tt2)  // zai 2 3
{
double dt=(600*v12)*(600*v12)-4*(v12-v22)*(v12*90000-90000*v22);
double x=(-600.0*v12+sqrt(dt))/2.0/(v12-v22);
if((x+600)/v1<=t+(600-x)/v2)
{
puts("Yes");
continue;
}
}
// zai 3 4

double dt=(1800*v12)*(1800*v12)-4*(v12-v22)*(v12*810000-90000*v22);
double x=(1800.0*v12-sqrt(dt))/2.0/(v12-v22);
if(sqrt((300.0-x)*(300.0-x)+90000.0)/v1+900.0/v1<=t+(300+x)/v2)
puts("Yes");
else
puts("No");

}
return 0;
}


HDOJ5515

这题题目比较长,所以大家都没看吧。。。

重现抢了个FB 哈哈
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: