题意:
给出风速,最大速度,起点终点,询问是否能到达终点,以及没秒所在位置。
思路:
风速的矢量分离出来,求对于位移的影响,作用在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;
}