51nod 多重背包问题 (dp)
2015-10-09 23:39
369 查看
输入
输出
输入示例
输出示例
第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <= 50000) 第2 - N + 1行,每行3个整数,Wi,Pi和Ci分别是物品体积、价值和数量。(1 <= Wi, Pi <= 10000, 1 <= Ci <= 200)
输出
输出可以容纳的最大价值。
输入示例
3 6 2 2 5 3 3 8 1 4 1
输出示例
9
#include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; int dp[55000],v[200],w[200],num[200]; int main() { int n,m,i,j,k; cin>>n>>m; for(i=1;i<=n;i++) cin>>w[i]>>v[i]>>num[i]; for(i=1;i<=n;i++) { for(j=1;j<=num[i];j*=2){ for(k=m;k>=w[i]*j;k--) dp[k]=max(dp[k],dp[k-w[i]*j]+v[i]*j); num[i]-=j; } for(k=m;k>=w[i]*num[i];k--) dp[k]=max(dp[k],dp[k-w[i]*num[i]]+v[i]*num[i]); } cout<<dp[m]<<endl; }
相关文章推荐
- spring boot实战(第八篇)上下文的创建
- UVALive 6283 Great Deceiver 思考题
- WordPress搬家数据库问题 error establishing a database connection
- nagios插件之域名超时监控
- java正确显示出字母且单词长度大于4的
- 马哥Linux运维笔记----7
- hihoCoder1232 Couple Trees LCA倍增算法+二分
- Makefile经典教程(掌握这些足够)
- 设计模式2-简单工厂模式
- JPEG与JPEG2000
- A*寻路算法
- EasyUI - Resizable 调整大小
- 《软件工程》第四次作业--目标软件(必应词典)
- ASP.NET本调试下配置Web.config识别json
- JSP页面间传递对象的方法与其特点
- android中的AIDL进程间通信
- C# 泛型理解之大白话
- Android学习之霓虹灯效果--所遇问题
- (mysql)触发器、事件、事务、函数
- Android学习实践:9.多选框CheckBox