题解
2023-08-10 16:54:09
发布于:浙江
10阅读
0回复
0点赞
为何要多开数组
#include<bits/stdc++.h>
using namespace std;
long long w[10005],v[10005],s[10005],f[10005],m,n,idx=1;
int ww,vv,ss;
int main()
{
cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>ww>>vv>>ss;
for(int j=1;j<=ss;j++)
{
w[idx]=ww;
v[idx]=vv;
idx++;
}
}
for(int i=1;i<idx;i++)
for(int j=m;j>=w[i];j--)
f[j]=max(f[j],f[j-w[i]]+v[i]);
cout<<f[m];
return 0;
}
这里空空如也
有帮助,赞一个