游起来吧!超妹!

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

题解:保安跑一点,超妹就朝着保安的反方向游一点,并且是向外游。这样下来,超妹就以一个螺旋形向外跑拓展,半径不断增加,并且超妹和保安的连线始终穿过圆心。因为半径慢慢增加,所以角速度不断在降低(w=v/r),直到降低到和保安的角速度相等。如果在向外游角速度就比保安的小。这个时候超妹就要直线向与保安相反的方向游。看超妹和保安谁先到岸边。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<stack>
#include<vector>
#include<queue>
#include<set>
#include<algorithm>
#define max(a,b)   (a>b?a:b)
#define min(a,b)   (a<b?a:b)
#define swap(a,b)  (a=a+b,b=a-b,a=a-b)
#define maxn 320007
#define N 100000000
#define INF 0x3f3f3f3f
#define mod 1000000009
#define e  2.718281828459045
#define eps 1.0e18
#define PI acos(-1)
#define lowbit(x) (x&(-x))
#define read(x) scanf("%d",&x)
#define put(x) printf("%d\n",x)
#define memset(x,y) memset(x,y,sizeof(x))
#define Debug(x) cout<<x<<" "<<endl
#define lson i << 1,l,m
#define rson i << 1 | 1,m + 1,r
#define ll long long
using namespace std;


int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        double a,b;
        cin>>a>>b;
        double c=a*PI/b;
        double d=a/b;//这里*1省略
        if(d>=a)//比较角速度,保证两人之间为直径的一部分
            cout<<"Yes"<<endl;
        else
        {
            if(a-d<PI*a/b)//角速度不满足时,直线逃跑
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
        }
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值