题目 :Problem - 2191 (hdu.edu.cn)
#include<bits/stdc++.h>
using namespace std;
int a[110],b[110],c[110],dp[110];
int main(){int C,n,m;scanf("%d",&C);while(C--){scanf("%d %d",&n,&m);memset(dp,0,sizeof dp);for(int i=0;i<m;i++){scanf("%d %d %d",&a[i],&b[i],&c[i]); }for(int i=0;i<m;i++){for(int j=1;j<=c[i];j++){for(int k=n;k>=a[i];k--){dp[k]=max(dp[k],dp[k-a[i]]+b[i]);}}}printf("%d\n",dp[n]);}return 0;
}