本地不RE
洛谷上RE
奉上代码
#include<bits/stdc++.h>
using namespace std;
struct bao{
int v,w,m;
}b[100],l[100000];
int n,W,idx,dp[40001];
int main(){
cin>>n>>W;
for(int i=0;i<n;i++){
cin>>b[i].v>>b[i].w>>b[i].m;
}
for(int i=0;i<n;i++){
int c=1,m=b[i].m;
while(b[i].m>c){
m-=c;
l[idx].v=c*b[i].v;
l[idx].w=c*b[i].w;
idx++;
c*=2;
}
l[idx].v=m*b[i].v;
l[idx].w=m*b[i].w;
idx++;
}
for(int i=0;i<idx;i++){
for(int j=W;j>=l[i].w;j--){
dp[j]=max(dp[j],dp[j-l[i-1].w]+l[i-1].v);
}
}
cout<<dp[W];
return 0;
}