模板①:背包问题(0-1背包&完全背包&多重背包)
来源:互联网 发布:淘宝中药央视 编辑:程序博客网 时间:2024/04/29 05:09
鉴于NOIP临近,打算来写写模板。。。
//0-1背包//外层循环枚举放的东西,内层循环枚举背包的最大容量到当前物品的容量void zeroone_pack(int *f,int c,int w){for(int i=v;i>=c;i--)//v为背包的最大容量f[i]=max(f[i-c]+w,f[i]);//比较当前这个位置放这个物品还是不放这个物品更优}//完全背包//外层循环枚举放的东西,内层循环枚举当前物品的重量到背包的最大重量void complete_pack(int *f,int c,int w){for(int i=c;i<=v;i++)f[i]=max(f[i-c]+w,f[i]);}//计算当前有多少种方案可以完全装完这个背包f[0]=1;void complete_pack(int *f,int c){for(int i=c;i<=v;i++)f[i]+=f[i-c];}//多重背包//如果背包的个数乘以背包的容积大于背包的最大容量转化为完全背包//其余的转化为二的次方数的加法,如果剩余的情况小于下一个用2的次方数表示的数,最后一种情况就是剩余的数//这个保证可以将所有的情况取到,eg.13=1+2+4+6,5=1+2+2;void multiple_pack(int m,int c,int w){if(c*m>v){complete_pack(f,c,w);return ;}int k=1;while(k<m){zeroone_pack(f,c*k,w*k);m-=k;k*=2;}zeroone_pack(f,c*m,w*m);return ;}
0 0
- 模板①:背包问题(0-1背包&完全背包&多重背包)
- 背包问题模板(01背包,完全背包,多重背包)
- 背包问题(0-1背包、完全背包、多重背包)详解
- 背包模板(01背包,完全背包,多重背包)
- 完全背包多重背包模板
- 【转】背包问题总结(0-1背包+完全背包+多重背包)
- 背包问题总结(0-1背包+完全背包+多重背包)
- 【转】背包问题总结(0-1背包+完全背包+多重背包)
- 背包问题 (0-1背包,多重背包,完全背包)
- 动态规划--背包问题(0-1背包,完全背包,多重背包)
- 背包问题(01背包,完全背包,多重背包)
- 背包问题(01背包,完全背包,多重背包)
- 背包(01背包、完全背包、多重背包)问题总结
- 背包问题(01背包,完全背包,多重背包)
- 背包问题(01背包 + 完全背包 + 多重背包)
- 背包问题(01背包,完全背包,多重背包)
- 经典背包问题----(01背包、完全背包、多重背包)
- 【背包问题】背包问题之0-1背包、完全背包、多重背包
- 电子竞技游戏市场概论
- Objective-C_实例变量可见度和⽅法
- C陷阱与缺陷读书笔记
- android布局技巧之屏幕适配
- 状态量管理和绘制几何物体---3
- 模板①:背包问题(0-1背包&完全背包&多重背包)
- #pragma 预处理指令详解
- Max Path Sum
- AWS的另类发展:与慧科教育联手,攻入北航在职硕士培训专业
- OC第二天
- hdu - 1506 - Largest Rectangle in a Histogram(dp / 单调栈)
- 蓝鲸的2道360题目作业
- NDK开发,没有你想象的那么难
- 安装PHP时出现MSVCR110.dll 文件丢失问题解决