题面
完全背包
题解
#include<iostream>
using namespace std;
const int maxn = 100010;
int n, m, c[maxn], w[maxn], f[maxn];
int main(){
cin>>m>>n;
for(int i = 1; i <= n; i++)
cin>>c[i]>>w[i];
for(int i = 1; i <= n; i++)
for(int j = c[i]; j <= m; j++)
f[j] = max(f[j],f[j-c[i]]+w[i]);
cout<<f[m]<<"\n";
return 0;
}