#include<iostream> #include<algorithm> using namespace std; int m,n,w[31],c[31],f[31][201],p; int main(){ cin>>m>>n; for(int i=1;i<=n;i++) cin>>w[i]>>c[i]; for(int i=1;i<=n;i++){ for(int v=m;v>0;v--){ if(w[i]<=v) f[i][v]=max(f[i-1][v],f[i-1][v-w[i]]+c[i]); else f[i][v]=f[i-1][v]; } } cout<<f[n][m]; return 0; }
一道经典的01背包qwq,
莫得题目(其实就相当于是板子!),
可能是我太菜了233...
原文:https://www.cnblogs.com/sxy2004/p/12219196.html