背包问题
1、01背包:
一个物品取或不取,外层枚举第几个,内层枚举体积
注意降成一维时枚举体积要倒序。
2、完全背包
每种物品无限个。同上,只不过逆序改顺序(因为无限,则也要考虑当前层对答案的影响)
3、多重背包
可以看成01背包,只不过一种物品有多个,还是逆序循环体积,只不过多了层枚举个数。
可以二进制分解优化,从而转化为01背包。
4、混合以上三种背包
则多几个if语句,判断是哪种类型,分类讨论,代码同上
5、二维费用背包
只不过多了个状态而已,其他与上面一样。
有时候条件按隐含的方式给出: