P6462的题解

· · 题解

本蒟蒻又来发题解了

先阐述一下本题的思路:

一.补刀的意思就是当小兵血低于英雄攻击力时快速出击,抢到人头,美滋滋。

二.特殊情况:

1:英雄没有攻击力(y==0)肯定会被防御塔割韭菜。No

2:防御塔没攻击力(x==0)肯定会被英雄抢人头啊。Yes

3:小兵的血量比英雄的攻击力低,一击必杀。Yes

4:小兵的血量一上来就比防御塔的攻击力低。肯定抢不到人头。No(判断过前一种情况后,英雄肯定没法秒杀小兵)

AC代码:

#include<iostream>
#include<cstdio>
using namespace std;
#define YES {cout<<"Yes"<<endl;continue; }
#define NO {cout<<"No"<<endl;continue;}
int main() {
    long long h,x,y,t;
    cin >> t;
    while(t--) {
        scanf("%ld%ld%ld",&h,&x,&y);
        if(y==0)NO
        if(x==0)YES
        if(y>=h)YES
        if(x>=h)NO
        long long ti=h/x+1;
        h=h%x;
        if(h==0)h=x;
        if((ti)*y>=h)YES
        else NO
    }
}

emm... 给个赞呗。