1.为啥题解都么有人用记忆化搜索来做
2.为啥记忆化搜索写不出来?还是我的问题?
code:
#include<iostream>
#include<string.h>
using namespace std;
const int N=1e6;
int m,n,v[N],w[N],dp[500][500];
int res(int i,int j){
int rec;
if(i>n) return 0;
if(dp[i][j]!=-1) return dp[i][j];
if(j<w[i]) return dp[i][j]=res(i+1,j);
else return dp[i][j]=max(res(i+1,j),res(i+1,j-w[i])+v[i]);
}
int main(){
memset(dp,-1,sizeof(dp));
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&v[i]);
printf("%d",res(1,m));
return 0;
}