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
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