背包问题的三个模板
2016-08-03 17:36
239 查看
//m背包的总容量、v物品的体积、w物品的价值 void OneZeroPack(int m,int v,int w) //0-1背包 { for(int i=m;i>=v;i--) f[i]=max(f[i],f[i-v]+w); } //m背包的总容量、v物品的体积、w物品的价值 void CompletePack(int m,int v,int w) //完全背包 { for(int i=v;i<=m;i++) f[i]=max(f[i],f[i-v]+w); } //m背包的总容量、v物品的体积、w物品的价值、num物品的数量 void MultiplePack(int m,int v,int w,int num)//多重背包 { if(v*num>=m) { CompletePack(m,v,w); return ; } int k=1; for(k=1;k<=num;k<<=1) { OneZeroPack(m,k*v,k*w); num=num-k; } if(num) OneZeroPack(m,num*v,num*w); }
相关文章推荐
- 多重背包问题(含模板)
- 模板①:背包问题(0-1背包&完全背包&多重背包)
- 背包问题模板
- 背包问题模板
- 背包问题--0/1背包 【模板】
- 部分背包问题模板
- 算法模板之01背包问题
- 背包问题模板
- 一维费用的背包问题模板
- 【51nod 1085】背包问题(0-1背包模板)
- 背包问题模板
- 背包问题标准模板
- nyoj106背包问题为模板解出杭电oj2187悼念512汶川大地震遇难同胞——老人是真饿了
- 背包问题_模板
- 背包问题模板
- 背包九讲问题的模板
- 简单背包问题模板
- ACM_模板_背包问题
- python 回溯法 子集树模板 系列 —— 3、0-1背包问题
- POJ 1014 Dividing (多重背包问题+递归)【模板】