关于优化后的0-1背包与完全背包第二层for循环遍历次序相反问题的解释

主要是要理解更新的问题。完全背包可以重复选一个物品,0-1背包只能选 1 次。 因此,按照下表(压缩到 1 维后),顺序更新会导致重复选 1 个物品,而逆序则保证了同一种物品能且只能选一次。

ps:dp问题就直接分析dp[ i ][ j ]最方便直观。

关于优化后的0-1背包与完全背包第二层for循环遍历次序相反问题的解释_第1张图片

附带一个0-1背包和完全背包区别的良心解答: 

AcWing 3. 完全背包问题 - AcWing

ps:由于直接理解二维完全背包有点难度,此解答利用了数学方法配凑出了完全背包的二维代码,有一定的巧妙性(不知道一开始发明这种写法是不是就是这样做的:

 

你可能感兴趣的:(#,动态规划,算法,c++)