继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

2021Multi-UniversityTrainingContest6LPinball受力分析

慕尼黑5497867
关注TA
已关注
手记 378
粉丝 23
获赞 80

将物体的重力加速度分解。

一部分用来做弹起运动,一部分用来做匀加速直线运动。

可以计算得出两个方向上的运动周期,两者之商为答案

#include

#include

#include

#include

using namespace std;

typedef long long int LL;

const int N=1e5 + 10;

const int mod=998244353;

const double g=9.8;

const double pi=acos(-1.0);

double t, vx, vy, v;

int T;

double a, b, x, y;

int main()

{

scanf("%d",&T);

while(T–){

scanf("%lf%lf%lf%lf",&a,&b,&x,&y);

t=sqrt(2.0*(y-b/a*(-x))/g);

vx=0; v=vy=g*t;

int ans=0;

double da=atan(b/a), db=pi/2-da;

vx=v * cos(fabs(db-da));

vy=v * sin(fabs(db-da));

double temp=-x;

while(temp > 0){

ans ++;

if(db >=da) t=vy*2/g;

else t=0;

double B=2*(vy-bvx/a), C=2bvxt/a;

double tt=(-B + sqrt(BB + 4g*C))/2/g;

t=t + tt;

vy=vy + g*tt;

temp -=vx * t;

if(vx==0) db=pi/2;

else db=atan(vy/vx) - da;

v=sqrt(vxvx + vyvy);

vx=v * cos(fabs(db-da));

vy=v * sin(fabs(db-da));

}

printf("%d

", ans);

}

return 0;

}

2021Multi-UniversityTrainingContest6LPinball受力分析

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP