宝物筛选
题目链接:
Y
b
t
O
J
YbtOJ
YbtOJ
P
S
PS
PS:这不是
L
u
o
g
u
Luogu
Luogu 上的那道,是数据减弱版。
解题思路
多重背包模板。
code
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,W;
int f[100010];
int v[101000],w[110000],m[110000];
int main()
{
cin>>n>>W;
for(int i=1;i<=n;i++)
scanf("%d%d%d",&v[i],&w[i],&m[i]);
memset(f,-0x3f3f3f3f,sizeof(f));
f[0]=0;
for(int i=1;i<=n;i++)
for(int j=W;j>=w[i];j--)
for(int k=1;k<=m[i]&&k*w[i]<=j;k++)
f[j]=max(f[j],f[j-w[i]*k]+k*v[i]);
int ans=0;
for(int i=1;i<=W;i++)
ans=max(ans,f[i]);
cout<<ans<<endl;
}