题意:一个人有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的更多相关文章

  1. hdu 3008:Warcraft(动态规划 背包)

    Warcraft Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. HDU 3008 Warcraft(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3008 题目大意:人有100血和100魔法,每秒增加 t 魔法(不能超过100).n个技能,每个技能消耗 ...

  3. HDU 3008 DP

    基础DP题 打BOSS  BOSS和自己都有100点血.玩家先手 每回合能够选择施放技能攻击(耗蓝,共n种)或者普通攻击(不耗蓝,伤害为1),BOSS每回合会攻击自己q点血,每回合自己会恢复t点法力 ...

  4. 转载:hdu 动态规划题集

    1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955     背包;第一次做的时候把概率当做背包(放大100000倍化为整数): ...

  5. hdu 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】(转)

    HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包 ...

  6. 【转载】 HDU 动态规划46题【只提供思路与状态转移方程】

    1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包;第一次做的时候把概率当做背包(放大100000倍化为整数) ...

  7. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  8. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  9. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. SpringCloud学习笔记(14)----Spring Cloud Netflix之Hystrix对Feign的支持

    1. Hystrix对Feign的支持 添加Feign中IUserBiz的实现类HystrixFallBack: package com.wangx.cloud.springcloud02consum ...

  2. luogu P3604 美好的每一天(莫队+二进制)

    这个题还是可以的. 但是卡常卡得我心力憔悴.还是太菜了 我们把一个区间当做一个26位二进制数,每一位代表一个英文,二进制数的每一个位0代表这一位对应的字母出现了偶数次,否则出现了奇数次. 那么一个区间 ...

  3. 实战medusa暴力破解

     medusa介绍: 暴力破解工具:主要可以破解这些模块功能很强大 medusa  的安装 条件: 准备工作:(下载下面软件)   1 wget http://www.foofus.net/jmk/t ...

  4. [MST] Use Volatile State and Lifecycle Methods to Manage Private State

    MST has a pretty unique feature: It allows you to capture private state on models, and manage this s ...

  5. 芒果TV真实视频地址解析

    本文旨在互相学习,请勿滥用 若有幸被您引用请附加地址来源http://blog.csdn.net/feige2008/article/details/37579051 文章主要解析芒果TV的视频真实地 ...

  6. emmet教程

    https://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html https://www.zfanw.com/blog/zencoding- ...

  7. poj_2187求凸包直径

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  8. Consolidate data by using multiple page fields

    Consolidate data by using multiple page fields https://support.office.com/en-us/article/Consolidate- ...

  9. nyoj--1184--为了肾六(动态规划+滚动数组)

    为了肾六 时间限制:4000 ms  |  内存限制:210535 KB 难度:2 描述 最近肾六很流行,goshawk看身边的朋友都用上了apple.自己还用着W年前的Samsung.于是决定去IT ...

  10. Scala基础简述

    * Scala基础简述 本文章作为Scala快速学习的教程,前提环境是:我假设在此之前,你已经学会了Java编程语言,并且我们以随学随用为目标(在此不会深度挖掘探讨Scala更高级层次的知识).其中语 ...