01背包与完全背包结合
来源:互联网 发布:macbookair软件推荐 编辑:程序博客网 时间:2024/05/17 03:22
题目:hdu5410
题意:一个物品重量W,告诉你总的物品时数和总钱数。买x个会给a*x+b个蜡烛。问最多可以获得多少个蜡烛。
解答:如果每个物品只拿一个,那就给a+b个蜡烛,所以先01背包再完全背包。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int MAXN = 2020;struct P{ int w,a,b;};P pr[MAXN];int dp[MAXN];int main(){ int T,M,N; scanf("%d",&T); while(T--) { memset(dp,0,sizeof(dp)); scanf("%d%d",&M,&N); for(int i = 1;i <= N;i++) scanf("%d%d%d",&pr[i].w,&pr[i].a,&pr[i].b); for(int i = 1;i <= N;i++) { for(int j = M;j >= pr[i].w;j--) dp[j] = max(dp[j],dp[j-pr[i].w]+pr[i].a+pr[i].b); for(int j = pr[i].w;j <= M;j++) dp[j] = max(dp[j],dp[j-pr[i].w]+pr[i].a); } printf("%d\n",dp[M]); } return 0;}
0 0
- 01背包与完全背包结合
- 01背包与完全背包(对比)
- [动态规划] 01背包与完全背包
- C++背包01与完全背包
- 01背包,完全背包
- 01背包 完全背包
- 01背包/完全背包
- 01背包,完全背包
- 01背包,完全背包
- 【01与完全】背包解析
- HDU-CRB and His Birthday(动态规划本质未认清)---01背包与完全背包的结合!
- 01背包,完全背包, 多重背包
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包详解
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 解析static关键字
- JavaScript实现弹出层代码
- 微店笔试
- Android动画
- 2016/8/15-2016/8/26两周开发总结
- 01背包与完全背包结合
- 安卓小日记练习(4)其中一个item的点击事件(1)
- Socket异步服务器,可以监控客户端的状态,功能有,文字测试,服务端向客户端传输屏幕录像(UDP传输)、监控客户端屏幕(UDP传输),抖动用户窗体、发送文件给用户、扫描客户的C盘目录。
- HTML5标签
- HDU 1995
- linux命令大全(一)
- Qt学习之十七:文件I/O
- Hust oj 1929 走三方,路迢迢水长长(递推)
- Xcode8与以往版本创建window的不