多重背包-51nob 1086 背包问题 V2
来源:互联网 发布:ubuntu如何下载安装vim 编辑:程序博客网 时间:2024/05/16 08:51
多重背包基础题:
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086
思路:
把每种物品拆成多份,使这些拆成的看为01背包,之后dp拆分好的01背包。
#include<cstdio>#include<cstring>#include<algorithm>#include <iostream>using namespace std;int dp[50050];int w[100000],p[100000];int main(){int n,m,cot=0;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); for(int i=1;c!=0;i=i*2) { if(c>=i) { w[cot]=i*a; p[cot++]=i*b; c-=i; } else { w[cot]=c*a; p[cot++]=c*b; c=0; } } } for(int i=0;i< cot;i++) { for(int j=m;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+p[i]); } cout<<dp[m]<<endl;return 0;}
0 0
- 多重背包-51nob 1086 背包问题 V2
- 51nod 1086 背包问题 V2(多重背包问题)
- 51nod oj 1086 背包问题 V2 【多重背包问题】
- 51nod 1086 背包问题 V2 (多重背包问题)
- 51Nod 1086背包问题V2(多重背包)
- 51Nod 1086 背包问题 V2(二进制多重背包)
- 51nod 1086 背包问题 V2(多重背包)
- 51nod 1086 背包问题V2(巧妙拆分多重背包)
- 51nod 1086 背包问题 V2 多重背包
- 51nod 1086 背包问题v2 多重背包
- 51nod 1086 背包问题 V2(多重背包)
- 51Nod 1086 背包问题 V2(多重背包)
- 51Nod 1086 背包问题 V2(二进制多重背包)
- 51nod 1086 背包问题 V2 (多重背包)
- 【多重背包】51nod 1086 背包问题 V2
- 51Nod-背包问题V2(多重背包+二进制优化)
- 多重背包模板题 背包问题V2
- 51nod-1086 背包问题(多重背包)
- HDU饭卡
- qt做的软件的更新程序!
- 搭建MVP模板框架
- 动态加载JS或CSS
- 剑指Offer:数字出栈入栈
- 多重背包-51nob 1086 背包问题 V2
- Peer-to-Peer (P2P) communication across middleboxes(翻译1)
- 练习2-7 编写一个函数invert(x,p,n),该函数返回对x执行下列操作后的结果:将x从第p位开始的n个(二进制)位求反(即1变成0,0变成1),x的其余各位保持不变。
- 恢复U盘启动盘隐藏的空间
- 小白日记4:kali渗透测试之被动信息收集(三)--Shodan、Google
- Scala 中apply方法的用法~(转)
- Eclipse和PyDev搭建完美Python开发环境(Windows篇)
- 数组操作方法
- 回顾数据存储(读、写)