http://acm.hdu.edu.cn/showproblem.php?pid=4950
给定怪兽血量h,你攻击力a,怪物回血力b,你攻击k次要休息一次,问能否杀死怪兽
特判一次打死怪兽的情况和第k次前打死怪兽的情况,否则只要能磨死怪兽即可
#include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <string> #include <queue> #include <vector> #include<map> #include <iostream> #include <algorithm> using namespace std; #define RD(x) scanf("%d",&x) #define RD2(x,y) scanf("%d%d",&x,&y) #define clr0(x) memset(x,0,sizeof(x)) typedef long long LL; int main() { LL h,a,b,k; int cas = 1; while(~scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k),h|a|b|k){ printf("Case #%d: ",cas++); if(a >= h || a*k-b*(k-1) >=h){ puts("YES"); continue; } if((k+1)*b < k*a){ puts("YES"); continue; } puts("NO"); } return 0; }