[HDOJ 4969] Just a Joke [数学]
来源:互联网 发布:手机淘宝免费开店 编辑:程序博客网 时间:2024/05/17 09:02
这道题就推个公式就完了...
已知点1以速率v1做半径为R的圆周运动,另一点2有恒定速率v2,从圆心开始运动,且圆心和这两点一直在一条直线上,求点2与点一重合所需要的路程是否小于d。
点2的移动路径大概是个螺旋线的样子,不过我们可以用点2的移动时间来计算点2的移动路程。
把点2的移动速度分解为切向速度和法向速度,由于点1的移动速度和半径恒定不变,所以点2的切向角速度恒定不变。
可以得到方程w^2r(t)^2+vv(t)^2=v2^2,其中,w为角速度,r(t)为t时刻点2距圆心距离,vv(t)为t时刻的点2的法向速度。可以知道r(t)为vv(t)对t积分得到的结果。
于是可以得到下式:w^2F^2(x)+f^2(x)=v2^2。
可以解出(其实是猜出来的..这家伙长的比较像椭圆的参数方程...),F(x)=v2/w*sin(wx)。
将w=v1/R带入,解得r(t)=v2*R/v1*sin(v1/R*t)。
于是在r(t)==R时,可知t=arcsin(v1/v2)*r/v1。
但是在v1==0时要特判,因为那时v2/v1不存在,中间的推到过程不成立,直接计算可知t=R/v2。
#include <cstring>#include <cstdio>#include <iostream>#include <cmath>using namespace std;double const eps=1e-8;double v1,v2,r,d;double t;int T;int main(){scanf("%d",&T);while(T--){scanf("%lf%lf%lf%lf",&v1,&v2,&r,&d);if(v1==0) t=r/v2;double t=asin(v1/v2)*r/v1;if(t*v2<=d+eps) printf("Wake up to code\n");else printf("Why give up treatment\n");}return 0;}
0 0
- [HDOJ 4969] Just a Joke [数学]
- hdu 4969 Just a Joke(数学)
- HDU-4969 Just a Joke (数学 - 积分)
- HDU 4969 Just a Joke
- HDU 4969 Just a Joke (数学题)
- HDU 4969 Just a Joke(积分)
- hdu 4969 Just a Joke(积分)
- hdu 4969 ( Just a Joke )数学题
- HDU 4969 Just a Joke 物理
- Hdu 4969 Just a Joke (简单积分)
- HDU多校赛9 HDU4969 Just a Joke 【数学积分】
- HDU4969 物理 Just a Joke
- hdu 4968 Just a Joke 数学(积分) 2014 Multi-University Training Contest 9-1010
- Just a joke? 高考零分作文(1)
- Just a joke? 高考零分作文(2)
- Just a joke? 高考零分作文(3)
- HDU多校赛9 HDU4969 Just a Joke
- HDU 4969 Just a Joke(简短神代码)计算几何,物理题(数据超弱)
- Android学习-聊天功能
- java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- ubuntu python指定默认版本
- 使用HTML5构建iOS原生APP
- 度不到的进程:es.exe
- [HDOJ 4969] Just a Joke [数学]
- Dijkstra算法与Prim算法的区别
- java学习总结(文件输出流与缓冲流)
- Java枚举总结
- windows 7 telnet 开启关闭
- Android常用控件之悬浮窗
- android——xmpp——消息更新——onResume
- Android通过改变主题实现夜间模式
- PHP-WEB安全