度度熊与邪恶大魔王

                                                                Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
                                                                                          Total Submission(s): 111    Accepted Submission(s): 36

Problem Description
度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来。

邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力。

度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k[i]的晶石,造成p[i]点伤害。

当然,如果度度熊使用第i个技能打在第j个怪兽上面的话,会使得第j个怪兽的生命值减少p[i]-b[j],当然如果伤害小于防御,那么攻击就不会奏效。

如果怪兽的生命值降为0或以下,那么怪兽就会被消灭。

当然每个技能都可以使用无限次。

请问度度熊最少携带多少晶石,就可以消灭所有的怪兽。

Input
本题包含若干组测试数据。

第一行两个整数n,m,表示有n个怪兽,m种技能。

接下来n行,每行两个整数,a[i],b[i],分别表示怪兽的生命值和防御力。

再接下来m行,每行两个整数k[i]和p[i],分别表示技能的消耗晶石数目和技能的伤害值。

数据范围:

1<=n<=100000

1<=m<=1000

1<=a[i]<=1000

0<=b[i]<=10

0<=k[i]<=100000

0<=p[i]<=1000

Output
对于每组测试数据,输出最小的晶石消耗数量,如果不能击败所有的怪兽,输出-1
Sample Input
1 2 3 5 7 10 6 8 1 2 3 5 10 7 8 6
Sample Output
6 18
Source
2017"百度之星"程序设计大赛 - 资格赛
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082
题目分析:考虑到怪兽的生命值和防御值比较小,设dp[i][j]为干掉防御力为i,生命值为j的怪兽所需耗费的最少晶石数,转移就是基础的完全背包
#include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
ll const INF = 1e15;
int const MAXN = 1e5 + 5;
int const MAXM = 1e3 + 5;
int n, m;
int a[MAXN], b[MAXN], k[MAXM], p[MAXM];
ll dp[15][MAXM];int main() {while (scanf("%d %d", &n, &m) != EOF) {for (int i = 0; i < n; i ++) {scanf("%d %d", &a[i], &b[i]);}for (int i = 0; i < m; i ++) {scanf("%d %d", &k[i], &p[i]);}for (int i = 0; i <= 10; i ++) {dp[i][0] = 0;for (int j = 1; j <= 1000; j ++) {dp[i][j] = INF;for (int l = 0; l < m; l ++) {int atk = max(0, p[l] - i);dp[i][j] = min(dp[i][j], atk >= j ? k[l] : k[l] + dp[i][j - atk]);}}}ll ans = 0;bool flag = true;for (int i = 0 ; i < n; i ++) {if (dp[b[i]][a[i]] == INF) {flag = 0;break;}else {ans += dp[b[i]][a[i]];}}printf("%I64d\n", flag ? ans : -1ll);}
}

HDU 6082 度度熊与邪恶大魔王 (完全背包)相关推荐

  1. HDU - 6082 度度熊与邪恶大魔王(背包变式)

    度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...

  2. HDU - 6082——度度熊与邪恶大魔王 (背包+DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 思路:dp[i][j]代表打死血量为i,防御力为j的怪兽要用的最少晶石.用背包的方式dp. #i ...

  3. HDU 6082 度度熊与邪恶大魔王(01背包)

    Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式 ...

  4. 【hdu 6082 度度熊与邪恶大魔王 】 完全背包

    hdu 6082 这道题一拿过来 对一个熊直接跑完全背包 然后跑 100000 次 完美TLE 其实因为对一个熊跑的时候 下次熊还是会跑的 于是需要对所有的熊直接完全背包预处理 设 dp[i][j] ...

  5. HDOJ 6082 度度熊与邪恶大魔王

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6082 百度之星2017资格赛的第三题. 自从从集训队退出之后,就再也没有做过题目了,当天晚上突然看到短 ...

  6. [HDU P6082]度度熊与邪恶大魔王

    原题链接 有点意外的DP 其实一开始的思路也是背包 但是思考方向的不对 后来看了题解 就是 DP[i][j]表示在防御力为i的情况下打出j点伤害所需的最小晶石数 枚举魔法的时候 如果直接能打掉就用这招 ...

  7. 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包

    定义状态dp[i][j][t]代表前i种攻击,当前怪物生命值为j,防御力为t,所需要的最小代价. 利用完全背包的方法很容易得到 (p[i] = 第i种方法的攻击值减去防御值t) dp[i][j][t] ...

  8. 2017百度之星资格赛:1003. 度度熊与邪恶大魔王

    度度熊与邪恶大魔王  Accepts: 1288  Submissions: 7716  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 3 ...

  9. 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)

    度度熊与邪恶大魔王 Time limit:1000 ms Memory limit:65536 kB Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来.邪恶大 ...

最新文章

  1. iOS开发网络——数据缓存
  2. 研修项目文件丢失的处理思路
  3. CentOS5.8 RHCS配置
  4. cesium雷达图_20个简化开发任务的 JavaScript库
  5. 1.10 访问对象的属性和行为
  6. GDCM:独特的uid测试程序
  7. 华硕笔记本,宽带连上,可以上网, 但收到不无线
  8. 计算机技术朝着那个方面发展,目前,信息系统在朝着哪个方面发展?
  9. YII2 rule exist unique
  10. Atlas 不仅仅是异步
  11. 计算机的硬盘 内存在哪查到,电脑硬盘内存怎么查看
  12. 32岁了学python来的及吗_为什么每个人都应该在2020年学习Python?
  13. service network restart重启失败_NodeManager 启动失败问题处理
  14. java lc ctype_postgresql中的 LC_CTYPE、LC_COLLATE
  15. React骚操作——jsx遇到template-directive
  16. 点云应用于电力行业助力输配电安全距离检测分析以及精细化巡检
  17. 实验|trunk的配置
  18. python图片马赛克_利用Python对图片进行马赛克处理
  19. 【javaScript】原生实现窗口拖动效果
  20. 用node-webkit接入steamAPI

热门文章

  1. 美国高通公司开发出了新的指纹识别技术
  2. PowerShell的力量,第1部分
  3. XML Publisher 模板
  4. 关于亚马逊开店需要做哪些准备
  5. python考试题目及答案-python考试题库
  6. 元宇宙的特征 —— 社交网络
  7. 【学习笔记】Linux_RedHat7.7(maipo),概述/目录信息/系统信息/版本信息/文件/用户/编辑/网络/路由/防火墙/监控/安装/定时任务等常用操作
  8. 正则表达式的一些重要知识
  9. n维椭球体积公式_【三分钟知识点】初中物理公式大全,赶快收藏!
  10. Python遥感可视化 — Basemap作Albers投影