题解
2025-10-01 13:37:57
发布于:广东
6阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,w[31],v[31],f[205];//f[j]表示容量不超过j时的最大价值
int main()
{
cin>>m>>n;
for(int i = 1;i<=n;i++)
{
cin>>w[i]>>v[i];
}
for(int i = 1;i<=n;i++)
{
for(int j = m;j>=w[i];j--)
{
if(f[j-w[i]]+v[i]>f[j])
{
f[j] = max(f[j],f[j-w[i]]+v[i]);
}
else
{
continue;
}
}
}
cout<<f[m]<<endl;
return 0;
}
这里空空如也

有帮助,赞一个