1 8 2 2 100 4 4 100 2
400
AC-code:
#include<cstdio>
#include<cstring>
#define max(a,b) a>b?a:b
int f[105],pay[2005],bag[2005],v[2005];
int main()
{
int t,a,b,c,n,m,i,j;
scanf("%d",&t);
while(t--)
{
int k=0;
memset(f,0,sizeof(f));
memset(pay,0,sizeof(pay));
memset(bag,0,sizeof(bag));
memset(v,0,sizeof(v));
scanf("%d%d",&n,&m);
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
for(j=0;j<c;j++)
{
pay[k]=a;
v[k++]=b;
}
}
for(i=0;i<k;i++)
for(j=n;j>=pay[i];j--)
f[j]=max(f[j],f[j-pay[i]]+v[i]);
printf("%d\n",f[n]);
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
HDU 2191:悼念512汶川大地震遇难同胞——珍惜现在,感恩生活【背包】
原文地址:http://blog.csdn.net/lin14543/article/details/48005425