背包问题 新手详解
来源:互联网 发布:淘宝企业开店费用 编辑:程序博客网 时间:2024/05/21 09:01
网站☞ 大体思路详解
然后关于里面有些不清楚的内容的补充:
- ❤ ❤ ❤ ❤ ❤ 01背包 ❤ ❤ ❤ ❤ ❤————f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
:) 关于从二维数组变成一维数组,在循环的时候V是逆序的原因:
因为在 i 的情况下,f [ ] 是和i - 1 有关的。
如果是正序,那么在你求 f [ v ] 的时候,实际上,f [ 0 ].....f [ v - 1] 已经改动过了,是和 i 有关的值了。
进一步解释的网站链接☞ 01背包具体数据的逆序解释
:) 关于01背包初始化中负无穷的问题:
、 个人觉得实际上就是保证了在求解过程中的f [ V ] 的V是 所给的物品的体积能够加起来的值。。。。
进一步解释的网站链接☞关于初始化的图解
:) 关于路径的记录问题: 以后补充
2. ❤ ❤ ❤ ❤ ❤ 完全背包 ❤ ❤ ❤ ❤ ❤ ————f[i][v]=max{f[i-1][v],f[i][v-c[i]]+w[i]}
:) 关于那个完全背包转换为01背包中的2^k没有看懂2333333 不过好像也没有辣么重要QAQ
:) 关于路径的记录问题:以后补充
:) 关于完全背包的正序问题 :
(1) for i (1 → n);
for v (w [ i ] → vmax);
f [ v ] = max { f [ v] , f [ v - c [ i ] ]+ w [ i ] };
解释:从01背包为什么要逆序我们可以知道,V正序的时候,f [ w [ i ] ]....f [ vmax ] 已经更新到了f [ i ], 因为物品可以放很多次呀。在max中,前面那一个就是在此时的v 的时候,我们选择不放入i物品;而后面那个式子,表示的是对于现在的v ,我们选择放入i 物品(但是在 f [ v - c [ i ] ] 的时候,我们可能已经选过了i 物品,这也就是和01 背包的区别)。
3. ❤ ❤ ❤ ❤ ❤ 多重背包 ❤ ❤ ❤ ❤ ❤
关于没有优化,01+完全,01三种代码的网址链接☞大致理解
:) 进一步补充:以后补充
阅读全文
0 0
- 背包问题 新手详解
- 背包问题详解
- 背包问题系列详解
- 背包问题详解
- 01背包问题详解
- 01背包问题详解
- 各种背包问题详解
- 背包问题详解
- 背包问题详解
- 01背包问题详解
- 背包问题详解:01背包、完全背包、多重背包
- 背包问题(0-1背包、完全背包、多重背包)详解
- 背包问题--完全背包 详解以及实现
- 背包问题系列算法详解
- 背包问题系列算法详解
- 0-1背包问题详解
- 0/1背包问题 详解
- 0-1背包问题详解
- 快速傅里叶变换(FFT)结果的物理意义是什么?(附Matlab程序)
- ios NSLocale 本地信息
- 11.1数组高级
- Python __call__
- ORDER BY关键字
- 背包问题 新手详解
- css3(1)
- Cause: org.postgresql.util.PSQLException: ERROR: cached plan must not change result type的前因后果
- 对发射的学习
- java-冒泡排序(使用比较器)
- 注解(Annotation)结构图
- IT运维工程师们为什么选择使用Linux系统
- JavaScript对象之正则表达式-RegExp
- #HDU 2845 Beans 最大不连续子列和