1. 程式人生 > >2019/2/6 寫給自己背包問題的小總結,

2019/2/6 寫給自己背包問題的小總結,

初始 背包 多重 在一起 求解 二進制優化 價值 優化 結構

背包問題:

①. 0/1背包, 每個物品只有1個,即只能選或者不選, 用結構體存貯每個物品的重量和價值,

然後fori(遍歷每個物品),再forj(1-i);

②. 完全背包.每個物品都有無限個,可以選擇無限個, 用結構體存貯每個物品的重量和價值,

然後fori(遍歷每個物品),再forj(i-1);

③. 多重背包.每個物品有有限個數,可以選擇特定個,用二進制優化,將每種相同物品拆解成捆綁在一起的數個可看成單個的物品,

然後當做0/1背包來求解.

是否恰好裝滿,

①. 沒要求恰好裝滿,那麽dp初始化全為0;

②. 要求恰好裝滿,那麽dp[0]=0;dp[其他]=負inf;

2019/2/6 寫給自己背包問題的小總結,