寫在前面
多重揹包優化方案還有單調佇列優化(暫未實現)
單調佇列優化參考**:
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對洞穴裡的寶物進行了整理,他發現每樣寶物都有一...