P1776宝物筛选
#include<bits/stdc++.h>
using namespace std;
int f[105][400005];
int n,W;
int v[105],w[105],m[105];
void get()
{
scanf("%d%d",&n,&W);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&v[i],&w[i],&m[i]);
}
}
void solve()
{
for(int i=1;i<=n;i++)
{
for(int j=W;j>=w[i];j--)
{
for(int k=1;k<=m[i];k++)
{
if(k*w[i]>=W)break;
f[i][j]=max(f[i-1][j],f[i-1][j-k*w[i]]+v[i]*k);
}
}
}
printf("%d",f[n][W]);
}
int main()
{
get();
solve();
return 0;
}
我觉得应该没问题啊,可是连样例也过不了