揹包九講專題 混合揹包

2022-05-04 08:51:11 字數 701 閱讀 5679

不優化樸素解法,01揹包看出s=1,完全揹包看成s=inf,再跑多重揹包(時間複雜度高,3層for迴圈):

#includeusing

namespace

std;

const

int maxn=1e3+5

;int

dp[maxn];

intv[maxn],w[maxn],s[maxn];

intmain()

for(int i=1;i<=n;i++)}}

printf(

"%d\n

",dp[m]);

}

view code

二進位制優化多重揹包,各跑完全/01揹包(2層for迴圈):

#includeusing

namespace

std;

const

int maxn=1e3+5

;int

dp[maxn];

struct

node;

intmain());

}if(s>0) goods.push_back();

}for(auto it:goods)

}printf(

"%d\n

",dp[m]);

}

view code

揹包九講專題 01揹包

樸素2維無優化寫法 includeusing namespace std const int maxn 1e3 5 int dp maxn maxn v maxn w maxn intmain printf d n dp n m view code 優化1維寫法 關於優化是怎麼來的?首先為什麼第二個...

DP 揹包專題 揹包九講

這段時間看了 揹包九講 在hust vjudge上找到了乙個題單,挑選了其中16道題集中做了下,選題全部是hdu上的題,大多是簡單題。目前做了點小總結,大概提了下每道題的思路重點部分,希望以後回看回想時能有幫助。題單 hdu 1059 hdu 1114 hdu 1171 hdu 1203 hdu 1...

揹包九講 之 混合揹包思路題解

問題重述 有 n 種物品和乙個容量是 v 的揹包。物品一共有三類 第一類物品只能用1次 01揹包 第二類物品可以用無限次 完全揹包 第三類物品最多只能用 si 次 多重揹包 每種體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使物品體積總和不超過揹包容量,且價值總和最大。輸出最大價值。輸入格式...