首页 > 代码库 > hdu 4969 物理/积分

hdu 4969 物理/积分

题意:a从圆心出发去追b,b沿着圆跑,速度分别是v2,v1(匀速),a,b,圆心始终三点共线,圆半径为R,问a在d距离内能否追到b。

哎,大学的物理积分都忘记了。。。好陌生了。。。看了题解才会的。。。把a的速度v2分解为径向速度和切向速度,则切向速度和B的速度平行,角速度相等,w(哦米噶)=v1/R, 设某时刻a距离圆心距离为 r,则径向速度 dr/dt=根号下(v2^2-w^2*r^2),移项,设t的时候追到,(0,t)定积分即可求出时间t。

t=R/v1*acsin(v1/v2);

#include<cmath>#include<iostream>using namespace std;int main(){    int T;    cin>>T;    while(T--)    {        double R,v1,v2,d;        cin>>v1>>v2>>R>>d;        double t=R/v1*(asin(v1/v2));        if(t*v2>d)          cout<<"Why give up treatment"<<endl;         else          cout<<"Wake up to code"<<endl;    }    return 0;}