hdu 4968 Just a Joke 数学(积分) 2014 Multi-University Training Contest 9-1010

本文探讨了在一个圆上跑步的女孩被男孩以特定条件追赶的问题,通过数学积分和编程实现来解决这一物理和几何问题。利用公式计算男孩是否能在设定的距离内追上女孩,涉及角速度、径向速度和切向速度的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题意:

有一个女孩在一个半径为R的圆上以v1速度匀速跑步,一个男孩从圆心出发以v2的速度追赶女孩(v1<=v2),要求女孩,男孩和圆心要保持在一条直线上。由于男孩膝盖中了一箭,所以最多只能跑d距离,问男孩能否追的上女孩。

题解:

积分题目,高数没学好的路过,大笑。。

设男孩的径向速度为vy,切向速度为vx,vx^2+vy^2=v2^2 ——(1)
由于要圆心,男孩,女孩保持一条直线上,所以角速度相同,v1/R=v2——(2)
把(1)代入(2)可得vy=sqrt(v2^2-r^2*v1^2/R^2);
其中r为径向位移,vy为径向速度,dr/dt=r'=vy——(3)
把(3)代入(4)得dr/sqrt(v2^2-r^2*v1^2/R^2)=dt,
两边求导得R/v1*asin(v1*r/(v2*R))+C=t,将r=0,t=0代入得t=R/v1*asin(v1*r/(v2*R))
将r=R代入求得时间T,结果就是ans=v2*T=v2*R/v1*asin(v1/v2)>d?

求导过程
根据∫1/sqrt(1-x^2)dx=asin(x)可得
dr/sqrt(v2^2-r^2*v1^2/R^2)=v2*R/v1∫d(r*v1/(v2*R))/(v2*sqrt(1-(r*v1/(v2*R))^2))
=R/v1*asin(v1*r/(v2*R))=∫dt=t


代码:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <cctype>
using namespace std;

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int v1,v2,r,d;
        scanf("%d%d%d%d",&v1,&v2,&r,&d);
        if(1.0*v2*r/v1*asin(1.0*v1/v2)>d)printf("Why give up treatment\n");
        else printf("Wake up to code\n");
    }
    return 0;
}
/*
设男孩的径向速度为vy,切向速度为vx,vx^2+vy^2=v2^2 ——(1)
由于要圆心,男孩,女孩保持一条直线上,所以角速度相同,v1/R=v2——(2)
把(1)代入(2)可得vy=sqrt(v2^2-r^2*v1^2/R^2);
其中r为径向位移,vy为径向速度,dr/dt=r'=vy——(3)
把(3)代入(4)得dr/sqrt(v2^2-r^2*v1^2/R^2)=dt,
两边求导得R/v1*asin(v1*r/(v2*R))+C=t,将r=0,t=0代入得t=R/v1*asin(v1*r/(v2*R))
将r=R代入求得时间T,结果就是ans=v2*T=v2*R/v1*asin(v1/v2)>d?

求导过程
根据∫1/sqrt(1-x^2)dx=asin(x)可得
dr/sqrt(v2^2-r^2*v1^2/R^2)=v2*R/v1∫d(r*v1/(v2*R))/(v2*sqrt(1-(r*v1/(v2*R))^2))
=R/v1*asin(v1*r/(v2*R))=∫dt=t

*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值