现在的位置: 首页 > 综合 > 正文

HIT3051

2013年05月03日 ⁄ 综合 ⁄ 共 678字 ⁄ 字号 评论关闭

 #include<stdio.h>
#include<math.h>
#define g 9.8
int main()
{
    int t,x1,y1,x0,y0,T,i;
    double vx,vy,s,mid1,mid2;
    scanf("%d",&T);
    for(i=0;i<T;i++)
    {
        scanf("%d%d%d%d%d",&x0,&y0,&x1,&y1,&t);
        vx=(x1-x0)*1.0/t;
        vy=(y1-y0+g*t*t/2)/t;
        mid1=sqrt((g*t-vy)*(g*t-vy)*1.0+vx*vx*1.0);
        mid2=sqrt(vy*vy*1.0+vx*vx*1.0);
        s=((g*t-vy)/2*mid1+vx*vx/2*log(g*t-vy+mid1)+vy/2*mid2-vx*vx/2*log(-vy+mid2))/g;
        if(s>sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0)))
        {
        printf("%.3lf\n",s);
        }
        else printf("Impossible.\n");
     }
     return 0;
 }
这是今天多校比赛做出来的唯一一个题目,关键是对IMPOSSIBLE的理解,既然是曲线,则必然比两点之间的距离大,这就是IMPOSSIBLE的关键

 还有一点是对曲线的积分,这是队里的队友积的,暂时还没自己积,等下自己积来看一下

抱歉!评论已关闭.