#include<bits/stdc++.h> using namespace std; int N,V,v[100001],w[100001],k=1,vi,wi,si,dp[10001][100]; int main(){ //4个商品 背包是10 //体v 价w 数量 dp 0 1 2 3 4 5 6 7 8 9 10 //3 2 1 //3 2 2 //4 3 3 //4 3 4 //2 2 5 //5 3 6 //5 3 7 //5 3 8 //5 3 9 cin>>N>>V; for(int i=1;i<=N;i++){ cin>>vi>>wi>>si; for(int j=1;j<=si;j++){ v[k]=vi; w[k]=wi; k++; } } for(int i=1;i<=k-1;i++){ for(int j=1;j<=V;j++){ if(v[i]<=j){ dp[i][j]=max(w[i]+dp[i-1][j-v[i]],dp[i-1][j]); } else dp[i][j]=dp[i-1][j]; } } cout<<dp[k-1][V]; } /************************************************************** Problem: 1888 User: admin Language: C++ Result: Wrong Answer ****************************************************************/