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

邪恶大魔王的麾下有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

因为血量和防御数据量很小,那么就可以用dp[i][j]表示一种防御为i 血量为j 的怪物需要使用的最少晶石数

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
#define INF 1e18
int k[1005],p[1005],a[100010],b[100010];
long long dp[15][1005];              //dp[i][j] 表示一种防御为i 血量为j 的怪物需要使用的最少晶石数
int main()
{long long n,m;while(cin>>n>>m){for(int i=1;i<=n;i++)cin>>a[i]>>b[i];for(int i=1;i<=m;i++)cin>>k[i]>>p[i];for(int i=0;i<=10;i++)          {for(int j=1;j<=1000;j++)dp[i][j]=INF;           //开始的时候赋值为无穷大 dp[i][0]=0;                      //血量为0的怪物不需要晶石 for(int j=1;j<=m;j++) {if(p[j]<=i)              //如果造成的伤害小于防御 那么就无效 continue;for(int q=1;q<=1000;q++)            //否则枚举血量 求出需要的最少晶石数 {int kk=q-p[j]+i>0?q-p[j]+i:0;dp[i][q]=min((long long)dp[i][kk]+k[j],dp[i][q]);}}}long long ans=0;for(int i=1;i<=n;i++)ans+=dp[b[i]][a[i]];if(ans>=INF)cout<<-1<<endl;elsecout<<ans<<endl;}return 0;
}

(百度之星资格赛) 度度熊与邪恶大魔王 (dp)相关推荐

  1. [刷题]2017百度之星资格赛 - 度度熊与邪恶大魔王

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

  2. 2017百度之星1003度度熊与邪恶大魔王

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

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

    题目链接: http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=774&pid=1003 题目大意: a[i], ...

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

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

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

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

  6. 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017

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

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

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

  8. 【原创】【百度之星2017资格赛1003】度度熊与邪恶大魔王

    度度熊与邪恶大魔王 Accepts: 3107 Submissions: 19305 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3276 ...

  9. 度度熊与邪恶大魔王(2017百度之星程序设计大赛 - 资格赛)

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

  10. HDU 6082 度度熊与邪恶大魔王 (完全背包)

    度度熊与邪恶大魔王                                                                 Time Limit: 2000/1000 MS ( ...

最新文章

  1. 20种看asp源码的方法及工具
  2. python local函数_python中的函数
  3. docker管理平台 shipyard安装
  4. GDCM:gdcm::Element的测试程序
  5. debug内exe文件复制到桌面无法打开_Qt打包生成exe步骤和无法定位程序输入点_gxx_personality_v0于动态链接库...
  6. Docker 获取镜像 - 一
  7. Asp.NET Core 轻松学-项目目录和文件作用介绍
  8. c语言 交互式电子白板案例,交互式电子白板教学案例
  9. 前端学习(2604):增加响应头可以获取数据
  10. android 重叠view 重叠布局,按比例布局
  11. linux vps 运行exe文件夹,在centos环境下运行.exe文件
  12. 亲密关系-【有效表达】-如何完善自己的表达思路?
  13. 【收藏】一份最新的、全面的NLP文本分类综述
  14. Atitit 视频编码与动画原理attilax总结
  15. stuiod3t-2019030.dmg下载及studio3t macOS Cracking教程
  16. 可行性分析报告 模板
  17. uniapp中上传图片到OSS服务器,上传图片upload修改为同步请求、以及h5和APP端压缩图片
  18. VPP /什么是VPP?
  19. Java使用zip4j库 压缩文件工具类(自适应压缩包编码格式)
  20. 阿里云存储OSS之九大使用技巧

热门文章

  1. 京东商城暂停所有地铁自提点:或因租金成本高
  2. 度盘搜失效?这款网盘搜索神器万万别错过!
  3. Hadoop随堂练习
  4. 【3D目标检测】[看code] VoxelRCNN RPN(一)
  5. UE4打包项目部署到Quest遇到的问题
  6. HCL华三模拟器三层交换机DHCP实验
  7. 嵌入式工程师的经典面试题目及答案
  8. 线性代数笔记10——矩阵的LU分解
  9. 常见专业术语名词解释(持续更新)
  10. 想成为牛逼网页设计师吗?