模版 揹包問題彙總

2021-09-27 02:29:40 字數 1356 閱讀 6467

寫在前面

多重揹包優化方案還有單調佇列優化(暫未實現)

單調佇列優化參考**:

0-1揹包第二層迴圈為什麼倒序,完全揹包第二層迴圈為什麼正序

//01揹包模版

#include

#include

#include

using namespace std;

#define maxsize 100010

//注意最大物品數的修改

int wei[maxsize]

, val[maxsize]

, dp[maxsize]

;//物品重量 價值 最優答案

intmain()

//完全揹包模版

#include

#include

#include

using namespace std;

#define maxsize 100010

//注意最大物品數的修改

int wei[maxsize]

, val[maxsize]

, dp[maxsize]

;//物品重量 價值 最優答案

intmain()

//多重揹包模版(二進位制優化)

#include

#include

#include

using namespace std;

#define maxsize 100010

//注意最大物品數的修改

int wei[maxsize]

, val[maxsize]

, num[maxsize]

, dp[maxsize]

;//物品重量 價值 數量 最優答案

int nwei[maxsize<<4]

, nval[maxsize<<4]

;// 新的物品重量 物品價值 開足夠大的空間

intmain()

if(num[i])}

for(

int i =

1; i <= pos; i++

)//注意這裡是新的物品量

for(

int j = cap; j >= nwei[i]

; j--

) dp[j]

=max

(dp[j]

, dp[j-nwei[i]

]+nval[i]);

printf

("%d\n"

, dp[cap]);

return0;

}

揹包問題模版

一 01揹包 define n n這個值是根據具體的題目來定的 int v v為總的容量 int dp n void zeroonepack int cost,int weight 二 完全揹包 define n n這個值是根據具體的題目來定的 int v v為總的容量 int dp n void ...

揹包問題模板彙總

完全揹包 多重揹包 混合揹包 揹包問題 knapsack problem 是一種組合優化的np完全問題。它是在1978年由merkel和hellman提出的。問題的描述為 有乙個揹包,最多放m kg的物體 物體大小不限 有n個物體,每個物體的重量為wi,每個物體完全放入揹包後可獲得收益vi。問 如何...

多重揹包模版

下面就是多重揹包的原題 借用洛谷的 終於,破解了千年的難題。小ff找到了王室的寶物室,裡面堆滿了無數價值連城的寶物 這下小ff可發財了,嘎嘎。但是這裡的寶物實在是太多了,小ff的採集車似乎裝不下那麼多寶物。看來小ff只能含淚捨棄其中的一部分寶物了 小ff對洞穴裡的寶物進行了整理,他發現每樣寶物都有一...