题目大意
有n个怪,每个怪都有血量和攻击力,还有一个英雄,英雄每次攻击怪,双方都会扣掉和对方攻击力值相同的血,血量小于等于0,就代表死了,问英雄是否最后能杀死所有怪
题解
我们只用最后攻击一次攻击力最高的那个怪就好了,如果在攻击他最后一次之前还活着,证明英雄可以杀光他们
#include<cstdio>
#define MAX 100005
long long ab[MAX][2];
int main(){
long long T,n,a,b,max,c,d,dao;
bool flag;
scanf("%lld",&T);
while(T--){
flag=1;
max=0;
scanf("%lld%lld%lld",&a,&b,&n);
for(long long i=0;i<n;i++){
scanf("%lld",&ab[i][0]);
if(ab[i][0]>max){
max=ab[i][0];
}
}
for(long long i=0;i<n;i++){
scanf("%lld",&ab[i][1]);
}
for(long long i=0;i<n;i++){
dao=0;
if(ab[i][1]%a){
dao++;
}
dao+=ab[i][1]/a;
b-=dao*ab[i][0];
}
b+=max;
if(b<=0){
flag=0;
}
if(flag){
printf("YES\n");
}else{
printf("NO\n");
}
}
}