DP 揹包九講之分組揹包

2022-05-26 18:48:11 字數 888 閱讀 5284

有 n 組物品和乙個容量是 v 的揹包。

每組物品有若干個,同一組內的物品最多只能選乙個。

每件物品的體積是 vij,價值是 wij,其中 i 是組號,j 是組內編號。

求解將哪些物品裝入揹包,可使物品總體積不超過揹包容量,且總價值最大。

輸出最大價值。

輸入格式

第一行有兩個整數 n,v,用空格隔開,分別表示物品組數和揹包容量。

接下來有 n 組資料:

每組資料第一行有乙個整數 si,表示第 i 個物品組的物品數量;

每組資料接下來有 si 行,每行有兩個整數 vij,wij,用空格隔開,分別表示第 i 個物品組的第 j 個物品的體積和價值;

輸出格式

輸出乙個整數,表示最大價值。

資料範圍

0給出 n 組物品和乙個體積為 m 的揹包,接下來輸入n組資料,每組資料輸入乙個s表示該組物品數,每組物品中最多只能選1個帶走,求揹包內可容納的最大價值。

這道題有多組物品,但每組只能選乙個,資料範圍為100,故可以列舉組內每乙個物品來表示狀態。 先列舉體積 m -> 0 再列舉組內每乙個物品,大迴圈是 1 - n 表示共 n 組物品,**實現:

#include

#include

#include

#include

#include

using

namespace std;

const

int n =

110;

int v[n]

,w[n]

,f[n]

;int

main()

cout << f[m]

<< endl;

return0;

}

揹包九講之分組揹包問題

分組揹包的理解請建立前幾講的基礎上。01揹包 完全揹包 多重揹包 混合揹包 二維揹包 有n件物品,分為若干組,現約束,在每組物品裡最多取一件物品放入揹包,每件物品的重量確定,價值確定,揹包容量確定,求在不超過揹包容量的情況下,可以存放的最大價值。首先判斷乙個分組當中的一件物品,同01揹包一樣,此物品...

DP 揹包專題 揹包九講

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

通天之分組揹包 分組揹包

本人水平有限,題解不到為處,請多多諒解 本蒟蒻謝謝大家 題目 傳送門 分組揹包的模板 偽 1 for int i 1 i 組數 i 6 7 直接套模板即可。code 1 include2 pragma gcc optimize 3 3const int n 1e5 10 4 using namesp...