首页 > 代码库 > ytu 2558: 游起来吧!超妹!(水题,趣味数学题)
ytu 2558: 游起来吧!超妹!(水题,趣味数学题)
2558: 游起来吧!超妹!
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 7 Solved: 3
[Submit][Status][Web Board]
Description
夏天到了,无聊的超妹跑到了落雪湖里抓鱼吃。结果,游到湖的正中 央时被湖边保安看到了,保安要抓住超妹。我们假设落雪湖是一个半径为r的圆形,超妹在圆形的正中心,速度为1.保安由于不会游泳所以只能沿着湖的边缘奔 跑,速度为n.因为超妹在陆地上的速度是很快的,所以我们假设只要超妹到达岸边就能顺利溜走。假设两人都足够聪明,且体力无限。
Input
输入包含T组数据,每组数据包含两个正整数r,n(0<n,r<10^9),分别表示圆形的半径和保安的速度。
Output
每组数据输出一行,如果超妹能够逃脱则输出”Yes”,否则输出”No”(不输出引号)
Sample Input
2
1 1
50 50
Sample Output
Yes
No
HINT
Source
山东工商第四届ACM程序设计大赛
水题,数学题。
思路:思路是这样的,警察跑一点,超妹就朝着警察的反方向游一点,并且是向外游。这样下来,超妹就以一个螺旋形向外跑拓展,半径不断增加,并且超妹和警察的连线始终穿过圆心。因为半径慢慢增加,所以角速度不断在降低(w=v/r),直到降低到和警察的角速度相等。如果在向外游角速度就比警察的小。这个时候超妹就要直线向与警察相反的方向游。看超妹和警察谁先到岸边。
代码:
1 #include <iostream>
2 #include <cmath>
3 using namespace std;
4 const double PI = acos(-1);
5 int main()
6 {
7 double v1=1,v2,r;
8 int N;
9 cin>>N;
10 while(N--){
11 cin>>r>>v2;
12 double rx = v1*r/v2;
13 if(rx>=r) //在角速度降低到比警察的小的时候超妹就已经游到了岸边
14 cout<<"Yes"<<endl;
15 else{ //需要直线跑
16 if(r-rx < PI*r/v2)
17 cout<<"Yes"<<endl;
18 else
19 cout<<"No"<<endl;
20 }
21 }
22 return 0;
23 }
Freecode : www.cnblogs.com/yym2013
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。