模板 多重揹包

2021-10-05 19:45:54 字數 1081 閱讀 4300

題目描述

為了挽救災區同胞的生命,心繫災區同胞的你準備自己採購一些糧食支援災區,現在假設你一共有資金n元,而市場有m種大公尺,每種大公尺都是袋裝產品,其**不等,並且只能整袋購買。

請問:你用有限的資金最多能採購多少公斤糧食呢?

input

輸入資料首先包含乙個正整數c,表示有c組測試用例,每組測試用例的第一行是兩個整數n和m(1<=n<=100, 1<=m<=100),分別表示經費的金額和大公尺的種類,然後是m行資料,每行包含3個數p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分別表示每袋的**、每袋的重量以及對應種類大公尺的袋數。

output

對於每組測試資料,請輸出能夠購買大公尺的最多重量,你可以假設經費買不光所有的大公尺,並且經費你可以不用完。每個例項的輸出佔一行。

sample input

1

8 22 100 4

4 100 2

sample output

const

int maxn =

1e2+5;

int t, n, w;

int v[maxn]

;//**

int w[maxn]

;//質量

int num[maxn]

;//數量

int weight[

2005];

int value[

2005];

int f[

2005];

intmain()

memset

(f,0

,sizeof

(f))

;for

(int i =

0; i < k; i++)}

} cout << f[w]

<< endl;

}return0;

}

多重揹包模板

有n種物品和乙個容量為v的揹包。第i種物品最多有num i 件可用,每件費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。多重揹包問題的思路跟完全揹包的思路非常類似,只是k的取值是有限制的,因為每件物品的數量是有限制的,狀態轉移方程為 dp i ...

多重揹包模板

多重揹包模板 1.多重揹包 優化 例題 有n種物品,每種物品的數量為c1,c2.cn。從中任選若干件放在容量為w的揹包裡,每種物品的體積為w1,w2.wn wi為整數 與之相對應的價值為p1,p2.pn pi為整數 求揹包能夠容納的最大價值。input 第1行,2個整數,n和w中間用空格隔開。n為物...

模板 多重揹包

學習了二進位制優化,吼吼!寫個模板,雖然這種型別並不需要模板,但是寫乙個,備忘 模板 int dp n void onezeropack int v int n int w void completepack int v int n int w void multipliepack int v in...