传送:: http://acm.hdu.edu.cn/showproblem.php?pid=2191
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int dp[110];
int main()
{
//freopen("test","r",stdin);
int C,n,m;
cin>>C;
while(C--)
{ cin>>n>>m;
for(int i=0;i<m;i++)
{
int p,h,c;
cin>>p>>h>>c;
for(int j=n;j>=0;j--)
{
for(int k=0;k<=c && k*p<=j ;k ++) //多重背包
dp[j]=max(dp[j],dp[j-k*p]+k*h);
}
}
cout<<dp[n]<<endl;
memset(dp,0,sizeof(dp));
}
return 0;
}
原文:https://www.cnblogs.com/lkfsblogs/p/12657032.html