您的位置:首页 > 其它

多重背包 hdu2191 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活

2016-10-22 18:05 260 查看
题意:没见物品消耗空间c[I],贡献w[I],数量num[I],求最大值

#include<iostream>
#include<string.h>
using namespace std;
const int  N =2000;
int dp[2001],n,m;
int c[101],w[101],num[101];
int Max(int a,int b)
{
return a>b?a:b;
}
void pack()
{
memset(dp,0,sizeof(dp));//没有重置为0 ,wa一次
for(int i=1;i<=m;i++)
for(int j=n;j>=0;j--)
for(int k=1;k<=num[i];k++)
{
if(j>=k*c[i])
dp[j] = Max(dp[j],dp[j-k*c[i]]+k*w[i]);
}
cout<<dp
<<endl;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=1;i<=m;i++)
cin>>c[i]>>w[i]>>num[i];
pack();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐