Joy of Flight 2014-2015 ACM-ICPC, NEERC, Northern Subregional Contest

来源:互联网 发布:欧几里得算法 编辑:程序博客网 时间:2024/06/05 11:45

题意:

给出风速,最大速度,起点终点,询问是否能到达终点,以及没秒所在位置。

思路:

风速的矢量分离出来,求对于位移的影响,作用在dx dy上,求平均X的速度和Y的速度

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>#include <map>#include <queue>using namespace std;typedef long long ll;double t[100005];double vx[10005];double vy[10005];int main(){    freopen("joy.in","r",stdin);    freopen("joy.out","w",stdout);    double sx,sy,fx,fy;    double n,k,v;    cin>>sx>>sy>>fx>>fy>>n>>k>>v;    for(int i=1;i<=n;i++)        cin>>t[i]>>vx[i]>>vy[i];    t[(int)n+1]=k;    vx[(int)n+1]=vy[(int)n+1]=0;    double lx=0,ly=0;    for(int i=1;i<=n;i++)    {        lx+=(vx[i] )*(t[i+1]-t[i]);        ly+=(vy[i] )*(t[i+1]-t[i]);    }    double dx=-lx+fx-sx,dy=-ly+fy-sy;    double px=(dx)/k,py=(dy)/k;        if(dx*dx+dy*dy>v*v*k*k)    {        printf("No\n");        return 0;    }    printf("Yes\n");    int cur=0;    double nowfx=0,nowfy=0;    for(int i=0;i<k;i++)    {        if(i==t[cur+1])            nowfx=vx[++cur],nowfy=vy[cur];        sx+=px+nowfx;        sy+=py+nowfy;        printf("%.6lf %.6lf\n",sx,sy);    }    return 0;}


阅读全文
0 0
原创粉丝点击