先放01背包和完全背包的状态转移方程:
Q:为什么完全背包的表达式第二个是f[i][j-v]+w ?
从这也可以看出和01背包的代码差别
Q: 为什么是01从大到小枚举 ?
A: 因为01背包每次用到的是i-1层的f值
如果从小到大枚举 j-v<j 那么此时的j-v在第i轮会被计算出
不满足用的i-1层
但如果从大到小 那么第i轮中j-v并没有被计算得出 会在i-1中才被计算
因此 要从大到小枚举
对于完全背包问题从小到大枚举同样分析可得
微信扫一扫
先放01背包和完全背包的状态转移方程:
Q:为什么完全背包的表达式第二个是f[i][j-v]+w ?
从这也可以看出和01背包的代码差别
Q: 为什么是01从大到小枚举 ?
A: 因为01背包每次用到的是i-1层的f值
如果从小到大枚举 j-v<j 那么此时的j-v在第i轮会被计算出
不满足用的i-1层
但如果从大到小 那么第i轮中j-v并没有被计算得出 会在i-1中才被计算
因此 要从大到小枚举
对于完全背包问题从小到大枚举同样分析可得
相关推荐