hdu6082 度度熊与邪恶大魔王
http://www.elijahqi.win/2018/01/14/hdu6082-%e5%ba%a6%e5%ba%a6%e7%86%8a%e4%b8%8e%e9%82%aa%e6%81%b6%e5%a4%a7%e9%ad%94%e7%8e%8b/
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”百度之星”程序设计大赛 - 资格赛
qwq 我我蒟蒻我终于对背包有点感觉了
题意:n个怪兽 相应的血量和护甲值
m个招 每个的花费和可以减的血 求把所有怪兽干死最小代价是多少
那么因为题目中提到 这个东西我可以无限的用看起来很像完全背包啊 一开始我比较zz如果我针对每个人做一下背包T飞了啊 那怎么搞 我可以先预处理下再做啊这样就是m^2*b了 设dp[i][j]表示我这个敌人血量是i护甲值是j 干死的最小代价是多少 那么我枚举下护甲值 然后再在里面做下完全背包 就可以搞定
最后输出答案的时候先判断有么有不能干死的 有puts(“-1”)否则 累积下答案即可
#include<cstdio>
#include<cstring>
#include<algorithm>
#define M 1100
#define N 110000
#define inf 0x3f3f3f3f
using namespace std;
inline int read(){int x=0;char ch=getchar();while(ch<'0'||ch>'9') ch=getchar();while(ch<='9'&&ch>='0') x=x*10+ch-'0',ch=getchar();return x;
}
int n,m,a[N],b[N],kk[M],p[M],dp[M][11];
int main(){freopen("hdu6082.in","r",stdin);while(~scanf("%d%d",&n,&m)){int max1=0,max2=0;for (int i=1;i<=n;++i) a[i]=read(),b[i]=read(),max1=max(max1,a[i]),max2=max(max2,b[i]);for (int i=1;i<=m;++i) kk[i]=read(),p[i]=read();memset(dp,0x3f,sizeof(dp));for (int k=0;k<=max2;++k){dp[0][k]=0;for (int i=1;i<=m;++i){int dis=p[i]-k;if (dis<=0) continue;for (int j=1;j<=max1;++j){int now=j-p[i]+k;if (now<0) now=0;dp[j][k]=min(dp[j][k],dp[now][k]+kk[i]);}}}long long ans=0;bool flag=0;for (int i=1;i<=n;++i){if (dp[a[i]][b[i]]==inf) {flag=1;break;}ans+=dp[a[i]][b[i]];}if (flag) puts("-1");else printf("%lld\n",ans);}return 0;
}
hdu6082 度度熊与邪恶大魔王相关推荐
- HDU - 6082 度度熊与邪恶大魔王(背包变式)
度度熊与邪恶大魔王 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需 ...
- 2017百度之星资格赛:1003. 度度熊与邪恶大魔王
度度熊与邪恶大魔王 Accepts: 1288 Submissions: 7716 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3 ...
- 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)
度度熊与邪恶大魔王 Time limit:1000 ms Memory limit:65536 kB Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来.邪恶大 ...
- 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017
度度熊与邪恶大魔王 Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊 ...
- HDU 6082 度度熊与邪恶大魔王 (完全背包)
度度熊与邪恶大魔王 Time Limit: 2000/1000 MS ( ...
- 2017百度之星 资格赛1003度度熊与邪恶大魔王
1003度度熊与邪恶大魔王 Accepts: 1503 Submissions: 9026 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3 ...
- 【原创】【百度之星2017资格赛1003】度度熊与邪恶大魔王
度度熊与邪恶大魔王 Accepts: 3107 Submissions: 19305 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 3276 ...
- 度度熊与邪恶大魔王(2017百度之星程序设计大赛 - 资格赛)
度度熊与邪恶大魔王 Accepts: 1764 Submissions: 10691 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- 百度之星资格赛1003 度度熊与邪恶大魔王
Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式 ...
最新文章
- R绘制带显著性标记的热图
- rtsp连接断开_live555学习之RTSP连接建立以及请求消息处理过程
- 结构型模式之Facade模式
- CUDA tool URL
- Webx示例-PetStore分析1
- HashMap 面试 21 问,这次要跪了!
- jieba库的使用和好看的词元
- 3.Hadoop的学习(ubuntu安装配置jdk)
- 编辑流程图_如何使用ProcessOn快速绘制一张高颜值流程图?
- 微服务配置中心实战:Spring + MyBatis + Druid + Nacos
- c语言案例朗读工具源码,C语言编写简单朗读小工具(有源码)
- IoT -- (五) IoT都有哪些通信协议
- Docker从入门到实战(四)
- 利用WinRar压缩和解压缩文件
- (1.2.4)无法将类型“NPOI.SS.UserModel.Sheet”隐式转换为“NPOI.HSSF.UserModel.HSSFSheet”。...
- VisualSVN Server提交整个工程项目
- XP框架的另外选择→太极
- 电脑电话,怎么用电脑打电话
- spring boot启动报错: The APR based Apache Tomcat Native library which allows optimal performance
- 韩国中产的今天!76岁的快递员,70岁的站街女......