HDU 3008 Warcraft
题意:一个人有100点血和100点魔法,Boss有100点血。人有n个技能。每一个技能对Boss有a[i]点伤害,
且会消耗b[i] 的点魔量,人每秒会有t秒魔法恢复(最大为100)Boss每秒有q点伤害,问人能否先击败Boss
若能。须要几秒。
dp[i][tmp]:在第 i 秒 剩余 魔法为 tmp 时的伤害。
tmp = 第i秒拥有的魔法 j - a[k]消耗的魔法+t。
dp[i][tmp]=max(dp[i][tmp]。dp[i-1][第i秒拥有的魔法 j]+b[k]);
每次找出第 i 秒时有 j 魔法剩余tmp魔法的伤害。
理解:在第 i-1 秒时有 j 点魔法,然后 在 第 i 秒时用第 i-1 秒时的魔法使用第 k个技能 攻击Boss
攻击完后剩余tmp点魔法,以此循环……
#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<map>
#include<cmath>
#include<iostream>
#include <queue>
#include <stack>
#include<algorithm>
#include<set>
using namespace std;
#define INF 1e8
#define eps 1e-8
#define LL long long
#define maxn 100001
#define mol 1000000007 int main()
{
int n,t,q;
int dp[105][105];
int a[105],b[105];
while(scanf("%d%d%d",&n,&t,&q))
{
if(n==0&&t==0&&q==0) break;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
}
memset(dp,0,sizeof(dp));
a[0]=0;b[0]=1;
int flag=0,i;
for(i=1;(i-1)*q<100;i++)
{
for(int j=0;j<=100;j++)
{
for(int k=0;k<=n;k++)
{
if(j<a[k]) continue;
int tmp=j-a[k]+t;
if(tmp>100) tmp=100;
if(dp[i][tmp]<dp[i-1][j]+b[k])
dp[i][tmp]=dp[i-1][j]+b[k];
if(dp[i][tmp]>=100)
{
flag=1;
break;
}
}
if(flag) break;
}
if(flag) break;
}
if(flag)
printf("%d\n",i);
else printf("My god\n");
}
return 0;
}
HDU 3008 Warcraft的更多相关文章
- hdu 3008:Warcraft(动态规划 背包)
Warcraft Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 3008 Warcraft(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3008 题目大意:人有100血和100魔法,每秒增加 t 魔法(不能超过100).n个技能,每个技能消耗 ...
- HDU 3008 DP
基础DP题 打BOSS BOSS和自己都有100点血.玩家先手 每回合能够选择施放技能攻击(耗蓝,共n种)或者普通攻击(不耗蓝,伤害为1),BOSS每回合会攻击自己q点血,每回合自己会恢复t点法力 ...
- 转载:hdu 动态规划题集
1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数): ...
- hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)
HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包 ...
- 【转载】 HDU 动态规划46题【只提供思路与状态转移方程】
1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数) ...
- HDU 5643 King's Game 打表
King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
随机推荐
- vector ----- size函数注意事项
vector 的size函数返回vector大小,返回值类型为size_type,Member type size_type is an unsigned integral type,即无符号整数: ...
- 关于.net core 在docker中监听地址设置踩坑记
1.今天在做docker容器的时候发现如果将.net core 内部监听地址设置为localhost:8888. 2.在docker build -p 6444:8888 运行容器后,外部通过6444 ...
- tree 核心命令参数
常用参数: -a 显示所有文件 包括隐藏文件 -d 只显示目录 -f 显示每个文件的全路径 -i 不显示树枝 常与-f一起搭配 -L 显示的层数 -F 区分哪个文件是目录 [root@ftp:/va ...
- 洛谷 P1403 [AHOI2005]约数研究
怎么会有这么水的省选题 一定是个签到题. 好歹它也是个省选题,独立做出要纪念一下 很容易发现在1~n中,i的因子数是n / i 那就枚举每一个i然后加起来就OK了 #include<cstdio ...
- 使用InstelliJ IDEA创建Web应用程序
环境版本 Windows 8.1IDE:InstelliJ IDEA 13 Spring:Spring 4.1.1 & Spring MVC 4.1.1 WebLogic 10.3 ...
- python list set dict的简单应用示例
list.count(x):返回指定元素x在列表中出现的次数 set(list):将list类型变量转换为set类型,去除重复值 dick:保存键值对 x=[1,2,2,3,3] s1=set(x) ...
- HTTP——学习笔记(5)
我们通信的过程中会有哪些风险?: 1.HTTP不会对通信方的身份进行确认 因为HTTP协议中的请求和相应不会对通信方进行确认,就是不管发送或接收信息的人是不是之前的人,都不妨碍信息的发送或接收. 缺点 ...
- LaTeX 表格
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50066137 一些LaTeX中表格的使 ...
- 启动bind时报none:0: open: /etc/named/named.conf: file not found
刚一看,以为是说named.conf文件不存在或权限不够,但仔细查了一下后发现的确在啊,权限改为777也不行.无奈!先查了一下/etc/init.d/named文件里,是在执行/usr/local/n ...
- Unity渲染
我们先大概了解一下对渲染的优先级有影响的几个因素 1.Camera.Depth 不同相机的深度,在渲染顺序的优先度里面是最高的,Depth越大,渲染的图像越靠前 2.Render.SortingOrd ...