[DP][01背包]01\完全\多重背包模板
来源:互联网 发布:在家做淘宝客服靠谱吗 编辑:程序博客网 时间:2024/06/05 10:33
m为最大负担的费用
w[i]为第i个物品的花费
v[i]为第i个物品的价值
01背包
for i:=1 to n do for j:=m downto w[i] do f[j]:=max(f[j],f[j-w[i]]+v[i]);
初始化
- 恰好装满
for i:=1 to n do f[i]:=-maxlongint;f[0]:=0;
- 不用装满
for i:=1 to n do f[i]:=0;f[0]:=0;
- 当要输出最小值时应赋值为maxlongint,但会超longint,应赋值为max(v[i])+1
完全背包
一维
for i:=1 to n do for j:=w[i] to m do f[j]:=max(f[j],f[j-w[i]]+v[i]);
二维
for i:=1 to n do for j:=1 to m do if j-a[i]>=0 then f[i,j]:=max(f[i-1,j],f[i,j-a[i]]+b[i]) else f[i,j]:=f[i-1,j]; //注意注意没有这句就是错的!!!
多重背包
- 转化为01背包
ci:=0;for i:=1 to n do begin readln(a,b,c); //a:该物品的花费,b:该物品的价值,c:该物品的数量 for j:=1 to c do begin inc(ci); w[ci]:=a; v[ci]:=b; end; end;
- 二进制思想优化
我们想对于有x个价值为y的物品,将x分解为20+21+...+2k+(x−2k+1) 这样物品1..x个的方案都可以通过logk 个物品做01背包来实现 - 单调队列优化
0 0
- dp 01背包,完全背包,多重背包 模板
- 01背包、完全背包、多重背包模板
- 模板-01背包-完全背包-多重背包
- 01背包、完全背包、多重背包模板
- 01背包+完全背包+多重背包模板
- 01背包 完全背包 多重背包模板
- [DP][01背包]01\完全\多重背包模板
- 01 完全 多重 背包模板
- 背包模板(01背包,完全背包,多重背包)
- 背包问题模板(01背包,完全背包,多重背包)
- DP背包之01背包、完全背包、多重背包笔记
- 01背包模板、完全背包 and 多重背包(模板)
- 01背包模板、完全背包 and 多重背包(模板)
- 01背包,完全背包,多重背包 ,模板代码
- 01背包、完全背包、多重背包模板代码
- 动态规划之01背包,完全背包,多重背包模板
- DP总结(1) 01背包 完全背包 多重背包
- hdu 2844 多重背包模板题 01背包、完全背包、多重背包模板
- 第12周-多继承、虚基类,继承和组合-项目1-教师兼干部类
- 黑马程序员-----String,StringBuffer,StringBulider区别
- Ubuntu安装JDK,Scala
- HTML略知一二 (一)
- Docker(linux container) 所依赖的底层技术
- [DP][01背包]01\完全\多重背包模板
- windows下C++调用shell启动和关闭可执行文件exe的最简单方法
- 河北工行回应“储户千万存款失踪”:不法分子诈骗
- H2数据库使用
- 两个相交的圆形,第一个圆形内包含很多点,第二个圆内包含很多点,现在要求两个圆内相交的点是哪些,用随便的java或matlab算法如何实现呢?
- UVA1336修缮长城
- 求取最长回文字符串,o(n)的最优算法manacher
- UITableView的分组示例及常用方法
- 3名亡命盗车贼拒捕连撞13车 1人被击毙2人被擒