find a way to escape

2184 ワード

find a way to escape
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1005    Accepted Submission(s): 361
Problem Description
ある日、0068と***が湖に舟を浮かべた.突然岸辺に彼の大きな敵elnilが現れた.0068もちろんelnilの魔の爪に落ちたくないので、彼は何とかして逃げなければなりません.
この湖はとても規則的な円形で、半径はRです.このとき0068はちょうど円心位置にある.ボートの湖での速度はV 10068とelnilの岸での速度はV 2である.つまり、0068が上陸したばかりの時に捕まえられなければ、彼は逃げることができる.いつでも0068とelnilはどの方向にも移動できますが、0068はずっと船にいることはできません(飢え死にします)、elnilは水に入ることはできません(彼は泳げません).0068もelnilも頭がいいと仮定すると、いつも自分にとって最も有利なことをすることができ、二人の体力は無限だ.
すみません、0068は最終的にelnilの魔の爪から逃れることができますか?
 
 
Input
この問題には複数のテストが含まれています.ファイルが終わるまで処理してください.
各試験セットは、3つの整数、R、V 1、V 2を含む.
 
 
Output
各データセットについて、0068が安全に脱出できる場合はYesを出力し、そうでなければNoを出力する.
データがちょうど捉えられることはありませんので、臨界点をあまり考えなくてもいいです.
 
 
Sample Input
 
   
100 10 20 100 10 50
 


 

Sample Output
 
   
Yes No
 


 

Author
linle

 

 

 

 

题意:两个敌人A和B,A在半径为R的湖面中心、B在湖边,A在湖中划船的速率是V1,A和B在湖岸的速率是V2,给定R、V1、V2,判断A到达岸边是否能逃脱B。

思路:挺有意思的一道题、一开始认为A直接朝B的反方向跑,w了,后来才明白首先A要在湖中找到角速度和B相同的同心圆,在同心圆内A的角速度大于B的角速度,同心圆上A、B的角速度相同、然后A直接划往湖边就OK了~ 公式:v=w*r。

 

 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 #include 
 using namespace std;
 #define Pi acos(-1)
 
 double r,v1,v2;
 
 int main(){
          
     while(scanf("%lf%lf%lf",&r,&v1,&v2)!=EOF){
         double R=v1*r/v2;    // v=w*r
         if((r-R)/v1