HDU - 2191 珍惜现在,感恩生活
https://vjudge.net/problem/HDU-2191
有条件限制的多重背包,转换成01背包来做
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=110,M=110;
int n,m;
int w[N],v[N],s[N];
int f[M];
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>m>>n;
for(int i=1;i<=n;i++) cin>>v[i]>>w[i]>>s[i];
memset(f,0,sizeof f);
for(int i=1;i<=n;i++)
for(int j=1;j<=s[i];j++)
for(int k=m;k>=v[i];k--)
f[k]=max(f[k],f[k-v[i]]+w[i]);
cout<<f[m]<<endl;
}
return 0;
}
本文来自博客园,作者:斯文~,转载请注明原文链接:https://www.cnblogs.com/zhiweb/p/15483284.html

浙公网安备 33010602011771号