题意:两个人玩一个游戏,他们站在一个矩形的一角,矩形的每条边为300米,每个角被标为1,2,3,4,(他们一开始在1号位置),他们要依此跑过2,3,4,回到1,每个角先到的人会得到1分(当然最初的时候1号点是不算的,要转一圈回来先到的得分),其中一个人跑的很快(记作Speeder),能以V2速度跑,所以他必定直接按路线跑,即沿着矩形边框跑,但是另一个人跑的满,为V1的速度(V1<=V2),但是他很擅长打架(Fighter),能再跑的途中与Speeder战斗,并必定打败S,得到1分,且S会被晕T秒,问你最后F会赢不,输出Yes/No。
范围:所有数小于2000
解法:很明显, F要赢必定要打架,所以除了打架拿到的一分外,他还要至少获得2分才行,那么他可以选择的狙击策略(打晕Speeder!)必然是在最上的那条边或者最右的那条边,同时可以发现越早打晕越好(因为F要重新跑到2号点开始,因为他为了狙击S肯定不会先到2号点),然后枚举S剩下没跑的点谁先到,计算得分比一比就好啦。
求解时间的时候可以选择二分,精度比较高。(有人似乎因为解方程精度丢失WA了)
代码:
#include<stdio.h>
#include<string.h>
#include<a