这个题是一个裸的完全背包问题,但是数组需要开大,
代码
#includeusing namespace std;int n,m,v,i;int c[100010],w[100010],f[100010];int main(){ cin>>m>>n; for( i=1;i<=n;i++) cin>>c[i]>>w[i]; for( i=1;i<=n;i++) for( v=w[i];v<=m;v++) if(f[v-w[i]]+c[i]>f[v]) f[v]=f[v-w[i]]+c[i]; cout<