HDU
来源:互联网 发布:飘零网络验证金盾 编辑:程序博客网 时间:2024/06/14 07:03
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4950
题目大意:A打B,B的初始血量是h,A打B扣a滴血,打完B马上回复b滴血,打完连续k轮,A需要休息一下,即B不扣血但加血
解题思路:
A点为第一次扣血点,如果这点小于1的话,必赢,如果这点大于等于1的话,B点为最后一次扣血点,如果B点小于1的话必赢(因为能让折线往下走的方法是a>b,那么累计下来,B一定是扣血最多的点),C是k轮结束后恢复到的血值,如果这点小于初始值的话,那么进行若干轮,一定赢(相当于把前面的折线平移过来,而且初始位置更低了)
AC代码:
#include<cstdio>#include<algorithm>#include<cstring>#include<map>using namespace std;typedef long long LL;int main(){ int cas = 1; for (LL h, a, b, k;scanf("%I64d%I64d%I64d%I64d", &h, &a, &b, &k) == 4 && (h || a || b || k);) { printf("Case #%d: ", cas++); if (h - a < 1 || h + k*(b - a) - b < 1 || h + k*(b - a) + b < h)//讨论的就是上面说的三个点 puts("YES"); else puts("NO"); } return 0;}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- easymall第一天
- Easy Climb UVA
- iOS提交TestFlight测试显示缺少合规证明
- Larravel Valet
- 什么是学习?
- HDU
- htons(), ntohs(),htonl(),ntohl(), inet_addr() ,inet_ntoa() || bzero()
- PHP扩展-php.ini
- lvs
- 根据数组中某个值相等的数组重组、并释放重复的数组
- pentaho专题之reporting design入门指南
- easymall第二天
- poj 3160 强连通+最长路
- 阶乘除法