自己的网站怎么优化,wordpress自定义登录界面,网站建设排名北京,app开发公司价格表题目描述
UIM 在写程序的空闲玩一款 MOBA 游戏。 当敌方的小兵进入到我方防御塔的范围内#xff0c;就会持续受到防御塔造成的伤害#xff1b;当然我方英雄也可以对它造成伤害。当小兵的血量降到了 0 或者更低#xff0c;就会被击杀。为了获得经验#xff0c;UIM 希望在防…题目描述
UIM 在写程序的空闲玩一款 MOBA 游戏。 当敌方的小兵进入到我方防御塔的范围内就会持续受到防御塔造成的伤害当然我方英雄也可以对它造成伤害。当小兵的血量降到了 0 或者更低就会被击杀。为了获得经验UIM 希望在防御塔将这个小兵杀死之前亲自补刀将其击杀。
为了简化问题我们假设这个小兵有 ℎh 点的生命值。每次防御塔的攻击可以给小兵造成 x 点伤害而你的英雄每次攻击可以给小兵造成 y 点伤害。你的攻击速度和防御塔攻击速度相同所以你可以在防御塔第一次攻击小兵之前或者每次防御塔攻击之后选择是否对小兵进行一次攻击当然你也可以选择不攻击。
现在想知道给出这些信息判断英雄是否有办法将这个小兵击杀
输入格式
每个测试点由多组数据组成。
输入第一行包含一个正整数 T表示数据组数。
接下来 T 行每行三个非负整数 h,x,y其意义已经在题目描述中给出。
输出格式
输出 T 行。对于每组数据如果可以最后将小兵击杀输出 Yes否则输出 No。
输入输出样例
输入 #1复制
5
100 100 1
100 97 1
100 98 1
100 99 1
100 100 0
输出 #1复制
No
No
Yes
Yes
No
说明/提示
数据的组数不多于 501≤ℎ≤10的18次方 1≤h≤10的18次方0≤x,y≤10的18次方。
思路分析
我们看题
给定小兵生命防御塔攻击 英雄攻击求英雄是否有办法将这个小兵击杀。
于是我们得到以下结论 若英雄攻击为 0 则是NO。 若英雄攻击不为 0但防御塔攻击为 0 则是 YES。
若英雄攻击与防御塔攻击都不为零 若防御塔刚好将小兵击败 即 h%x0 英雄能在防御塔击败小兵前打 h/x 次。 若防御塔不能刚好将小兵击败 即 h%x!0 英雄能在防御塔击败小兵前打 h/x1 次。 若英雄能在防御塔之前 对小兵造成 h%x 点伤害则 YES , 否则 NO
代码分享
#include iostream
#include algorithm
using namespace std;
long long n,h,x,y,temp;
int main(){cinn;for(int i0;in;i){scanf(%lld%lld%lld,h,x,y);if(y0){//英雄攻击为0printf(No\n);}else if(x0){//防御塔攻击为0printf(Yes\n);}else if(yx){//英雄攻击比防御塔大printf(Yes\n);}else{if(h%x0){temph/x;if(temp*yx)printf(Yes\n);else printf(No\n);}else{temph/x;if((temp1)*yh%x)printf(Yes\n);else printf(No\n);}}}return 0;
}