不断进取、努力。
同样,我们也要感谢痛苦与艰辛带给我们的财富~
同样,我们也要感谢痛苦与艰辛带给我们的财富~
1 8 2 2 100 4 4 100 2
400
思路:可以将多袋拆分为每袋,转化为01背包做
#include<iostream>
#include<string.h>
#include<stdio.h>
#include <queue>
#include <vector>
#include <map>
#include <algorithm>
typedef long long ll;
using namespace std;
int p[10005],h[10005];
int dp[1005];
int main()
{
int cas;
cin>>cas;
while(cas--){
int n,m,a,b,c;
memset(dp,0,sizeof(dp));
memset(p,0,sizeof(p));
memset(h,0,sizeof(h));
cin>>n>>m;
int cnt = 0;
for(int i=1;i<=m;i++){
cin>>a>>b>>c;
while(c--){
p[cnt]=a;
h[cnt]=b;
cnt++;
}
}
for(int i=0;i<cnt;i++){
for(int j=n;j>=p[i];j--){
dp[j] = max(dp[j],dp[j-p[i]]+h[i]);
}
}
cout<<dp[n]<<endl;
}
return 0;
}