01背包 记忆化搜索

来源:互联网 发布:java 二进制流上传 编辑:程序博客网 时间:2024/05/16 14:17
#include<iostream>using namespace std;int f[110][1100],w[110],v[110],n,m;int dfs(int x,int y){if(x<=0)return 0;if(f[x][y]>0)return f[x][y];if(y<w[x])return f[x][y]=dfs(x-1,y);elsereturn f[x][y]=max(dfs(x-1,y),dfs(x-1,y-w[x])+v[x]);}int main(){int i,j,k;cin>>m>>n;for(i=1;i<=n;i++)for(j=1;j<=m;j++)f[i][j]=-1;for(i=1;i<=n;i++)cin>>w[i]>>v[i];cout<<dfs(n,m)<<endl;return 0;}

0 0