洛谷 P1757 通天之分組揹包

2021-07-24 12:00:42 字數 928 閱讀 8275

直達通天路·小a歷險記第二篇

自01揹包問世之後,小a對此深感興趣。一天,小a去遠遊,卻發現他的揹包不同於01揹包,他的物品大致可分為k組,每組中的物品相互衝突,現在,他想知道最大的利用價值是多少。

輸入格式:

兩個數m,n,表示一共有n件物品,總重量為m

接下來n行,每行3個數ai,bi,ci,表示物品的重量,利用價值,所屬組數

輸出格式:

乙個數,最大的利用價值

輸入樣例#1:

input: 45 4

10 10 1

10 5 1

5 20 2

50 400 2

輸出樣例#1:

output:30

1<=m<=1000 1<=n<=1000 組數t<=100

普通的分組揹包,然而我似乎已經忘了。。。

#include#include#includeusing namespace std;

const int n=1005;

int m,n,w[n],v[n],f[1005],a[105][1005];

int main()

int cnt=0;

for(int i=1;a[i][0]!=0;i++)

for(int j=m;j>=0;j--)

for(int k=1;k<=a[i][0];k++)

if(j>=w[a[i][k]])

f[j]=max(f[j],f[j-w[a[i][k]]]+v[a[i][k]]);

printf("%d\n",f[m]);

return 0;

}

洛谷P1757 通天之分組揹包

直達通天路 小a歷險記第二篇 自01揹包問世之後,小a對此深感興趣。一天,小a去遠遊,卻發現他的揹包不同於01揹包,他的物品大致可分為k組,每組中的物品相互衝突,現在,他想知道最大的利用價值是多少。輸入格式 兩個數m,n,表示一共有n件物品,總重量為m 接下來n行,每行3個數ai,bi,ci,表示物...

洛谷P1757 通天之分組揹包

題目鏈結 通天之分組揹包 解題思路 典型的分組揹包問題 for 所有的組k for v v.0for 所有的i屬於組k f v max 同樣的三重迴圈,不過在輸入時需要記錄組數z 陣列t用來記錄每組有幾件物品 二維陣列s記錄每組第i件物品的的序號 附上 include using namespace...

洛谷 P1757 通天之分組揹包

直達通天路 小a歷險記第二篇 自01揹包問世之後,小a對此深感興趣。一天,小a去遠遊,卻發現他的揹包不同於01揹包,他的物品大致可分為k組,每組中的物品相互衝突,現在,他想知道最大的利用價值是多少。輸入格式 兩個數m,n,表示一共有n件物品,總重量為m 接下來n行,每行3個數ai,bi,ci,表示物...