关于背包九讲01背包中的常数优化
2017-02-08 16:06
477 查看
关于背包九讲01背包中的常数优化
for i ← 1 to N for v ← V to Ci
优化为
for i ← 1 to N for v ← V to max (V−key, Ci )
其中key=∑niCi
这里的max优化就是考虑了这样一种情况:
即使后面(i…n)的所有物品都被装入背包后,剩余的空间仍然比 Ci 大
我们知道空间优化后的一维数组中的状态转移方程如下
dp [v] ← max (dp [v], dp [v − C] + W )
我们是不断通过比较上一轮的dp结果进行状态转移
进一步的,如果满足优化条件
那么对于
i+1...n的情况 这里的
v-C将最多取值取到
key而
key to Ci的不会被取到也就没有计算的必要了
这个优化对V比较大是效果显著
相关文章推荐
- 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)
- 背包九讲——01背包(降维+常数级优化)
- 01背包问题 总结关于为什么01背包优化成1维数组后,内层循环是逆序的?
- 01背包问题中常数优化(背包九讲)
- 背包问题九讲笔记_01背包
- 01背包的优化——读背包九讲
- hdu 4104 Discount 01背包变形+优化
- 01背包问题的优化解法
- 01背包优化
- 关于01背包求第k优解
- 背包问题九讲笔记_01背包
- 01 背包优化
- HDU 2844 Coins 多重背包+常数优化 -
- hdu 1059 多重背包 二进制优化 (完全 , 01)背包结婚
- 01背包空间优化的形式(滚动数组)(2955)
- 背包九讲笔记--01背包
- 01: 01背包问题(背包九讲)
- POJ 3624 Charm Bracelet【裸01背包和关于贪心解 01 背包问题的思考】
- 背包九讲之一 P01: 01背包问题
- 关于背包问题的二进制优化