揹包問題總結

2021-10-19 14:26:23 字數 802 閱讀 6727

1、什麼是揹包問題

有n件物品,1個最多可以裝下重量為w的揹包。每件物品有兩個屬性,乙個是重量,第i件物品的重量為weights[i];乙個是價值,第i件物品的價值為values[i]。
2、揹包問題的分類

如果每件物品只有1個,則為01揹包;

如果每件物品有無數個,則為完全揹包;

如果每件物品的數量不相同,則為多重揹包;

如果對揹包進行了分組,每組只能選乙個,則為分組揹包。

其中01揹包和完全揹包最為常見。揹包問題的經典資料非[揹包九江]莫屬。但這份資料對於剛入門的小白來說還是有難度的。

3、力扣題目推薦

力扣上沒有最原始的揹包問題,都是揹包問題的變種,不認真分析,還真看不出是揹包問題。

原始01揹包問題:

原始完全揹包問題:

力扣01揹包問題:

分割等和子集,最後一塊石頭的重量ii,目標和,一和零

力扣完全揹包問題:

零錢兌換ii,組合總和iv,爬樓梯,零錢兌換,完全平方數,單詞拆分

以上題目聽名稱好像和揹包問題毫不相關,但都可以使用揹包的思想進行解題。

4、解法、

揹包問題可以使用回溯法或者動態規劃進行解題。

回溯法名字聽著響亮,但改變不了其暴力解法的本質。他是通過列舉所有的可能性,從中找到我們想要的解法。回溯法一般都要進行剪枝操作或者加快取,才能達到時間要求。

動態規劃是比較高效的解法,但是需要找出遞推公式。遞推公式因題而異,的確很難掌握。

揹包問題 01揹包總結

寫這篇部落格的原因是因為自己初學揹包的時候覺得好玄學。只是知道怎麼寫,但是具體是為什麼覺得很玄妙。在此其實希望和我一樣的小白萌新早點明白其中的原理,其實原理很簡單,只要懂了這個圖,我想01揹包就不成問題了。首先要明確這張表是至底向上,從左到右生成的。關於01揹包的題目暫時整理了一點。1.簡單01揹包...

揹包問題總結

標籤 acm dp 揹包 n 物品,乙個揹包,每個物品價值wi 體積vi 揹包容量 c 求最大價值 對於物品 i可選可不選 fi j fi 1 j vi j 0 fi j max c j vi 給定 n 種物品和乙個揹包。第 i種物品的價值是 wi 其體積為vi 揹包的容量為 c 同一種物品的數量無...

揹包問題總結

揹包問題主要是分為三種 0 1揹包,完全揹包,多重揹包 1 0 1揹包 定義 何謂0 1揹包,可以這樣想,那裡有一堆值錢的東西,每一樣東西只有一件,他們的價值和體積都不一樣,現在要你從這n件裡面挑選一些放到乙個容量一定的揹包裡面,使得你的揹包裡的東西總價值最大。對於這些東西的每一件,你可以選擇放進你...