样例不过但是AC了,滚动数组球调
#include<bits/stdc++.h>
#define ll long long
#define PII pair<ll,ll>
using namespace std;
const int N=1e3+10,M=1e3+10,K=1e2+10;
int n,m;
ll f[M][2];
vector<PII > a[K];
int main()
{
scanf("%d%d",&m,&n);
for(int i=1,w,v,k;i<=n;i++)
{
scanf("%d%d%d",&w,&v,&k);
a[k].push_back({w,v});
}
bool p=0;
for(int i=0;i<=100;i++,p^=1)
{
if(a[i].size()==0)
{
p^=1;
continue;
}
for(PII it:a[i])
{
int w=it.first,v=it.second;
for(int j=m;j>=w;j--)
f[j][p]=max(f[j][p],f[j-w][p^1]+v);
}
}
printf("%lld",f[m][p^1]);
return 0;
}