-->
当前位置:首页 > 题库 > 正文内容

编程题:h0104. 马戏团飞行游戏

Luz4年前 (2022-02-19)题库667
有个边长为300米的正方形

![正方形.png](~/b1b6d213-60ee-4a08-ae7b-1973d4cadb84.png)

有两个人A和S玩一个游戏,开始的时候A、S都在1(左下角)那个位置。A擅长打架(Fighter),S跑的很快(Speeder)
两个人都要按照2、3、4、1的顺序走。

有两个得分的方法: ①. 比对手先走到点(2或3或4或1) 先走到的得1分,后走到的不得分。 ②. A把S打一顿,A得一分。

A在正方形里面也是可以随便走的。(比如A能直接从1走直线到3, 但是如果他要得分,他必须回到2,按照2341的顺序走才能得分)

A只能打S一次,打完之后S会昏迷T秒。A不能在S到2号点之前打晕他。

题目保证A的速度v1小于等于S的速度v2。

若是A、S同时到达点上,是A得分,A再打人的。

问A能不能获得胜利。

### 输入格式:

第一行包含一个整数t(0<t≤10000), 接着是t行。每一行包含三个实数T, V1 ,V2 ,(0≤V1 ≤V2 ,T≥0), 代表一种情况。

### 输出格式:

如果存在A赢得比赛的策略,则输出“Yes”,否则输出“No”。

### 输入样例:

in
2
1 20 80
100 10 13


### 输出样例:

out
Case #1: No
Case #2: Yes







答案:若无答案欢迎评论

分析:

A比S慢,所以肯定要尽早把S打昏了,才能开始得分。

因为A也要按照2341的顺序走,所以打晕S的位置应尽量靠近2(这样重复走的路才少)

因为总共有5分(2、3、4、1四个点四分,A打S 一分),所以A要至少获得3分才能获胜,也就是至少得到2个点的分。

总体可以分为 在2、3之间把S打晕 和 在3、4之间把S打晕 两种情况。
(1、4之间打晕明显是不行的。因为S已经通过2、3、4走到1、4之间了, 那么S就已经得到了3分,A已经不可能获胜了)

特别的,考虑一下4号点。

若A选择在4号点打晕S,那么A是从1走过来的,此时A不能得分。(根据题目 先得分 再打人 )那么S就先得到4号点的分数,A之后才打晕S,

故4号点打晕S也是不能获胜的。

在2、3或者3、4打晕S的情况,(如上分析 要尽量靠近2号点,所以)应在恰好相遇的地方打晕S,而不存在 到达某地 等着S过来打晕他的情况。

那就只要解出相遇的位置,

在2、3打晕S的 判断下A能否先到(或者同时)到4号点

在3、4打晕S的 判断下A能否先到(或者同时)到1号点


![正方形1.png](~/ae89755e-14dd-4d40-8ac5-b22c4113c73b.png)

![正方形2.png](~/52b9ca18-321c-49f5-a851-a126e71890f2.png)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。