原题传送门:SSL_1045【采药】
一维数组,降低空间复杂度
上代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[1001],b[1001],c[1001],t=0;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)cin>>a[i]>>b[i];
for(int i=1;i<=m;i++)
{
for(int j=n;j>=1;j--)
{
if(j>=a[i])c[j]=max(c[j],c[j-a[i]]+b[i]);
t=max(t,c[j]);
}
}
cout<<t;
return 0;
}