2017百度之星资格赛1003(完全背包)
来源:互联网 发布:ubuntu emacs 编辑:程序博客网 时间:2024/06/12 19:43
度度熊与邪恶大魔王
Accepts: 872
Submissions: 5183
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
题目意思:
见题面!
题目思路:
我们可以考虑dp[i][j] 攻击力大于i的技能打的生命值为j的最小花费
所以我们可以第一层枚举防御,第二层枚举技能,第三层枚举生命
因为技能可以无限用所以三层要正着循环,完全背包套路,,,
然后我们来写转移方程,第j个技能造成的伤害是p[j] - i,所以
dp[i][k] = min(dp[i][k],dp[i][max(0,k-(p[j]-i)]+k[j]);生命值小于0 算0
AC代码:
#include<bits/stdc++.h>using namespace std;int n,m;int a[100005],b[100005];int k[1005],p[1005];long long dp[12][1005];int main(){ while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++)scanf("%d%d",&a[i],&b[i]); for(int i=1;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] = 1e18; } for(int j=1;j<=m;j++) { if(p[j]<=i)continue; for(int K=1;K<=1000;K++) { int kk = max(K-p[j]+i,0); dp[i][K] = min(dp[i][K],(long long)dp[i][kk]+k[j]); } } } long long ans = 0; for(int i=1;i<=n;i++) { if(dp[b[i]][a[i]]==1e18) { ans = -1; break; } ans+=dp[b[i]][a[i]]; } cout<<ans<<endl; } return 0;}
阅读全文
5 0
- 2017百度之星资格赛1003(完全背包)
- 百度之星资格赛1003 完全背包
- 【2017百度之星资格赛 1003】hdu 6082 完全背包
- 2017百度之星资格赛 1003 度度熊与邪恶大魔王(完全背包)
- 2017百度之星资格赛1003 度度熊与邪恶大魔王(完全背包)
- 2017百度之星资格赛 1003 度度熊与邪恶大魔王(完全背包)
- 2017百度之星资格赛 1003 度度熊与邪恶大魔王(DP 完全背包)
- hdu6082 2017"百度之星"资格赛1003 度度熊与邪恶大魔王(完全背包dp)
- 百度之星2017资格赛 1003 度度熊与邪恶大魔王 完全背包
- 2017百度之星资格赛 1002-图 1003-DP 1004-01背包(解选择方案)
- 【2017"百度之星"程序设计大赛资格赛 1003】度度熊与邪恶大魔王(DP 背包问题)
- 2017百度之星资格赛:1004. 度度熊的午饭时光(01背包+记录路径)
- hdu6083 2017"百度之星"资格赛1004 度度熊的午饭时光(背包dp+记录路径)
- 2017百度之星资格赛 hdu6083 度度熊的午饭时光 (01背包+字典序路径)
- 2017百度之星 资格赛 1003
- 百度之星资格赛1004 01背包+记录路径套路
- 百度之星资格赛
- 2017百度之星-1003-度度熊与邪恶大魔王(完全背包)
- [practice]cpp primer 1 script
- 重构SQLHelper
- GitHub for windows中文乱码问题
- jquery系列教程5-动画操作全解
- 关于cygwin/msys/msys2/mingw/mingw64
- 2017百度之星资格赛1003(完全背包)
- DSP入门应该懂得57个问题
- Xshell 5常用命令(自己整理的,不全)
- 微信开发出现“该公众号暂时无法提供服务,请稍后再试”的坑
- JavaScript HTML DOM – 改变 CSS
- ubuntu 16.04 安装NVIDIA,cuDNN
- jquery系列教程6-ajax的应用全解
- 1.2 使用字典对象
- 1.我和python的第一次亲密接触