hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

来源:互联网 发布:浙江铁笼沉尸 知乎 编辑:程序博客网 时间:2024/06/07 20:43

01 背包!


#include<stdio.h>

#include<string.h>
#define MAXN 101
#define MAX(a,b) a>b?a:b

int dp[MAXN];
int val[MAXN],weight[MAXN],num[MAXN];

int main()
{
int n,rest,i,j,t,k;
while(scanf("%d",&n)==1)
{
while(n--)
{
scanf("%d%d",&rest,&t);
for(i=0;i<t;i++)
scanf("%d%d%d",&val[i],&weight[i],&num[i]);
memset(dp,0,sizeof(dp));
for(i=0;i<t;i++)
for(j=rest;j>=val[i];j--)
for(k=num[i];k>=0;k--)
if(j-val[i]*k>=0)
dp[j]=MAX(dp[j-val[i]*k]+weight[i]*k,dp[j]);
printf("%d\n",dp[rest]);
}
}
return 0;
}