關於揹包問題的求解思路

2021-10-25 19:30:15 字數 873 閱讀 7850

求解揹包問題: 首先理清是0-1揹包還是完全揹包,確定for迴圈,然後寫狀態方程

518 零錢兌換ii

377 組合總和

139單詞拆分

322零錢兌換

這三種屬於完全揹包問題。

對於377這種,屬於有序放入,要求揹包在外迴圈,物品在內迴圈,dp[i]+=dp[i-num];

如果不是有序放入,物品作為外迴圈,揹包採用序的方式進行內迴圈。

完全揹包

對於322,每個零錢都可以使用,而且是無序,求解的是最少零錢數。

對於518 ,每種零錢都可以使用,而且是無序。組合成target的不同組合。

對於377,每個數字都可以使用,但是是有序的。求解的是等於目標和的次數

對於139,每個字串都可以使用,而且無序,求解是否拼接成目標target

0-1揹包:一般以物品作為外迴圈,揹包採用序的方式進行內迴圈。狀態方程一般是dp[i]+=dp[i-num] (求目標和),dp[i]=dp[i]||dp[i-num] (求是否存在) 、 dp[i][j]=math.max(dp[i][j],dp[i-zeros][j-ones]+1);(求解最大集合數)

494 目標和

474一和零

416分割等和子集

對於494,數字只能使用一次,並且無序。求解的是等於目標和的次數

對於474,每個字串只能使用一次,並且無序,求解的是拼接成目標target的最大集合

對於416,每個數字只能使用一次,無序,求解集合中的累加和是否等於某個target。

揹包問題的求解

1 問題描述 假設有乙個能裝入總體積為t的揹包和n件體積分別為w1,w2,wn的物品,能否從n件物品中挑選若干件恰好裝滿揹包,即使w1 w2 wm t,要求找出所有滿足上述條件的解。2 設計功能要求 例如 當t 10,各件物品的體積時,可找到下列4組解 1,4,3,2 1,4,5 8,2 3,5,2...

關於01揹包問題的動態規劃思路

大二在讀生自己的總結,求大牛不要噴。要做動態規劃題最重要的就是找思路,怎麼分解這個問題,把這個大問題化為小問題,小問題再化為更小的問題,最後就能做出來了。動態規劃裡有乙個經典的01揹包問題,乙個揹包的容量為k,然後有n個不同的物品大小分別為v1,v2,v3 求這個揹包k最多能容納多少物品容量和。刷了...

揹包問題 c 回溯法求解揹包問題

給定n種物品和乙個揹包。物品i的重量是wi,其價值為pi,揹包的容量為c。應如何選擇裝入揹包的物品,使得裝入揹包中物品的總價值最大?根據題目所給的資訊可知就是在wi共有5種物品,即n 5 揹包容量c 30 各物品的重量 wi 5 各物品的價值為 p i 所以所求揹包中的物品的價值最大就是 while...