01背包 模板题
直接上代码了。。。
1 #include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n,m,w[30],v[30]; 5 scanf("%d%d",&m,&n); 6 for(int i=1;i<=n;i++){ 7 scanf("%d%d",&w[i],&v[i]); 8 v[i]*=w[i]; 9 } 10 int f[2000][2005]; 11 for(int i=1;i<=n;i++){ 12 for(int c=m;c>=0;c--){ 13 if(w[i]>c){ 14 f[i][c]=f[i-1][c]; 15 }else{ 16 f[i][c]=max(f[i-1][c-w[i]]+v[i],f[i-1][c]); 17 } 18 19 } 20 } 21 cout<<f[n][m]; 22 return 0; 23 }