P3985 不开心的金明 记忆化+map

 P3985 不开心的金明

#include<iostream>
#include<map>
using namespace std;
int w[101],v[101];
map<int,map<int,int> > dp; 
int n,W;
long long dfs(int i,int zl)
{
	if (dp[i][zl]>0)  return dp[i][zl];
	if (i==n+1) return 0;
	else
	{
		if(zl>=w[i])
		{
			return dp[i][zl]=max(dfs(i+1,zl-w[i])+v[i],dfs(i+1,zl));
		}
		else return dp[i][zl]=dfs(i+1,zl);
	}
}
int main()
{
	cin>>n>>W;
	for (int i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i];
	}
	cout<<dfs(1,W);
	return 0;
}

  

posted @ 2022-03-19 18:32  心悟&&星际  阅读(32)  评论(0编辑  收藏  举报