题意:
你和一个怪物激情回合制对砍,每个人都有血量和攻击力。你现在有k个硬币,每个硬币都可以使你的血量增长a或者使你的攻击力增长w,问你合理搭配硬币是否能赢。
题解:
这…我们可以看到k的总和不超过2e5,那么我们只需要枚举多少个硬币给血量,剩下的给攻击力即可。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e5+5;
char s[N];
int main()
{
int t;
scanf("%d",&t);
while(t--){
ll h[2],d[2],k,w,a;
scanf("%lld%lld%lld%lld%lld%lld%lld",&h[0],&d[0],&h[1],&d[1],&k,&w,&a);
int f=0;
for(ll i=0;i<=k;i++){
ll nh=h[0]+i*a,nd=d[0]+(k-i)*w;
if((nh+d[1]-1)/d[1]>=(h[1]+nd-1)/nd){
f=1;
break;
}
}
printf("%s\n",f?"YES":"NO");
}
return 0;
}