可以当成完全背包来做吧
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1005;
int a[N],b[N],d[N],c[N];
int n,v;
int main(){
cin>>n>>v;
for(int i=0;i<n;i++)
cin>>a[i]>>b[i]>>c[i];
for(int i=0;i<n;i++)
for(int j=v;j>=0;j--){
int t=v/a[i];
for(int k=1;k<=min(t,c[i]);k++)
if(j>=k*a[i])
d[j]=max(d[j],d[j-k*a[i]]+k*b[i]);
}
cout<<d[v]<<endl;
return 0;
}