题解
完全背包裸题,不解释。
Code
// H F E
using namespace std;
int n,m,k;
int f[10001];
int v[10001],w[10001];
int main(void){
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>v[i]>>w[i];
int ans=0;
for(int i=1;i<=m;i++)
for(int j=w[i];j<=n;j++)
f[j] = max(f[j],f[j-w[i]]+v[i]);
for(int j=0;j<=n;j++) if(f[j]>ans) ans = f[j];
cout<<ans<<endl;
return 0;
}