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