C++ 代码
算法一
#include<iostream>
#include<algorithm>
using namespace std;
const int M=1e2+10;
int N,V;
int w[M],v[M],s[M];
int f[M][M];
int main()
{
scanf("%d%d",&N,&V);
for(int i=1;i<=N;i++)
scanf("%d%d%d",&v[i],&w[i],&s[i]);
for(int i=1;i<=N;i++)
{
for(int j=0;j<=V;j++)
{
for(int k=0;k*v[i]<=j&&k<=s[i];k++)
f[i][j]=max(f[i][j],f[i-1][j-k*v[i]]+w[i]*k);
}
}
printf("%d",f[N][V]);
return 0;
}