揹包問筆記1

2021-08-16 21:48:36 字數 1179 閱讀 1707

01揹包

揹包總容量為v=12,5個物品,體積=,價值各不同。如何取使得價值最大?

答案 21

//二維陣列方法:

#include

using namespace std;

int dp[7]

[13];

struct wupwup[7]

;voiddp(

)else

dp[i]

[j]= dp[i-1]

[j];}}

intmain()

//一維陣列方法:

#include

using namespace std;

int dp[13]

;struct wupwup[6]

;voiddp(

)else

dp[j]

= dp[j];}

}int

main()

完全揹包

二維陣列

f[i+1][j]=max(f[i][j-k*weight[i+1]]+k*value[i+1]),其中0<=k<=v/weight[i+1]
一維陣列

f[j]=max(f[j],f[j-weight[i]]+value[i]);
輸入

第一行:兩個整數,m(揹包容量,m<=200)和n(物品數量,n<=30);

第2…n+1行:每行二個整數wi,ci,表示每個物品的重量和價值。

輸出僅一行,乙個數,表示最大總價值。

樣例輸入

10 4

2 13 3

4 57 9

樣例輸出

max=12

//完全揹包

#include

using namespace std;

int dp[

101]

;struct wupwup[

101]

;int m,n;

voiddp(

)else

dp[j]

= dp[j];}

}int

main()

揹包問題學習筆記(1)

一方面學習揹包九講 這個十分清晰,重點標記清楚。但有些需要自己理解的和重點的,我做了如下筆記,方便別人理解,也方便自己複習,如有錯誤,歡迎指正。狀態函式f i v 表示 前i件物品放入容量為v的揹包可獲得的最大價值 狀態遷移方程f i v max考慮下為什麼是這樣的,對於第i件物品,我們只考慮是否要...

leetcode筆記 揹包問題總結1

這部分內容是參考大神cyc2018的 和總結,將leetcode中和揹包問題相關的放在這裡。1.字串按單詞列表分割 139.word break medium 這個問題也可以使用揹包問題的思路,把這個 放在問題139中了。2.劃分陣列為相等的兩部分 416.partition equal subse...

揹包問題 1 揹包的引入

上篇文章我考慮的是可以找零的方式有幾種,是運用搜尋解決的,但是如果我們要解決的是優化問題,就是說最小要多少硬幣呢?題目的位址是 其實他是乙個揹包問題,所以我準備重學一下。最近做硬幣找零問題,它實際是個揹包問題,很多知識掌握的不紮實。這裡重新總結一下,老規矩,還是靠題目驅動,下面所有題目都給了鏈結 大...