二刷提高课,题解目录在这里— 提高课的题解目录
比较普通的01背包问题,只不过将背包的价值对换成了一个公式
#include<iostream>
using namespace std;
int f[30010];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int s,w;
cin>>s>>w;
for(int j=n;j>=s;j--)
f[j]=max(f[j],f[j-s]+s*w);
}
cout<<f[n];
return 0;
}