首页 > 其他分享 >P3985 不开心的金明

P3985 不开心的金明

时间:2024-08-09 14:39:50浏览次数:7  
标签:开心 01 P3985 rep mi int 背包 dp 金明


题目看起来很像01背包,也就是dp【i】【j】表示前i个物品,花费为j,最多价值为dp【i】【j】
注意到题中给的数据范围,如果用常规01背包状态转移,有下面的问题:
v很大,花费很大,也就是说没法开这么大的二维数组,但是我们注意到

这意味着我们可以让所有的价格都减去最小的价格,这样价格的范围就变为【0,3】,这样以后再用01背包,最后把价格加回去判断就好了。就可以用二维数组存储价格了。
但是如果我们减完最小值,直接01背包,会发现,这是没法实现的。因为最后判断价格的时候,我们只知道遍历过了i个物品,但不知道我们选中了几个物品。没法通过把最小价格加回去计算真正的价格。
所以我们需要更改01背包的状态
原先的状态 dp【i】【j】表示前i个物品,花费为j,最多价值为dp【i】【j】
现在需要的状态 dp【i】【j】【k】 表示前i个物品中,选j个物品(很重要),价值为k(已减去j*min)
转移方程为 dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-1][k-v[i]]+p[i]);
code

int v[N],p[N];
int dp[110][110][310];
void solve()
{
	cin>>n>>w;
	int mi = 1e9+10;
	rep(i,1,n)
	{
		cin>>v[i]>>p[i];
		mi = min(mi,v[i]);
	}
	
	rep(i,1,n) v[i] -= mi;
	
	rep(i,1,n)
	{
		rep(j,1,i)
		{
			rep(k,0,300)
			{
				dp[i][j][k] = dp[i-1][j][k];
				if(k>=v[i]) dp[i][j][k] = max(dp[i][j][k],dp[i-1][j-1][k-v[i]]+p[i]);
			}
		}
	}
	
	int ans = 0;
	
	rep(i,1,n)
	{
		rep(j,0,300)
		{
			if(i*mi+j<=w) ans = max(ans,dp[n][i][j]);
		}
	}
	
	cout<<ans<<endl;
}

标签:开心,01,P3985,rep,mi,int,背包,dp,金明
From: https://www.cnblogs.com/SonyaXu/p/18350684

相关文章

  • 419.开心旅游主题网页 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有Web前端网页制作的各行各业的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......
  • 洛谷P1064 金明的预算方案——题解
    洛谷P1064题解传送锚点摸鱼环节[NOIP2006提高组]金明的预算方案题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过\(n\)元钱就行”。今天......
  • 【日记】今天又是哪朵小云不开心了呀(1886 字)
    正文上午上班没多久,天就特别阴,感觉像是要下暴雨的样子。前台接了一个电话,家里人打来的,她妈妈叮嘱她,要注意一点。他们那边已经开始下了。她转过头对我笑笑说,原来下雨在一个城里也能不同步。当时我笑了笑,对她说,局部降雨还有更局部的,然后打开的视频网站,随便点了一个。......
  • 开心消消乐 题解
    题目id:8578题目描述\(A\)酱最近在玩开心消消乐,由于是异次元的游戏,所以规则可能和地球上的有所不同。开心消消乐是一个在大圆环上进行的游戏,环上有若干个宝石,每颗宝石都有自己的积分,由于消消乐是一个三消游戏,我们每次可以挑选其中一个宝石消去,消去宝石的积分为他的积分和左右相......
  • 【题解】金明的预算方案
    原题传送门题目描述金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过\(n\)元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附......
  • 【C语言】位操作符详解 - 《开心消消乐》
    目录1.介绍2.位操作符列表3.按位操作符详解3.1按位与(&)示例输出3.2按位或(|)示例输出3.3按位异或(^)示例输出3.4按位取反(~)示例输出按位取反操作符(~)示例输出按位取反操作符详细解释3.5左移(<<)示例输出3.6右移(>>)示例输出4.应用实例4.1使用位掩码示例输出4.2......
  • 2024最新Zibll子比主题V7.7版本源码 开心版 | WordPress主题
    简介:2024最新Zibll子比主题V7.7版本源码开心版|WordPress主题安装教程在压缩包内V7.7更新日志:新功能新增数字翻页输入页码跳转的功能(注:总页数超过8页才会显示)新增后台批量设置文章阅读量、点赞数、显示布局等文章扩展功能新增后台批量设置论坛帖子阅读量、置顶、类......
  • 剪映PC电脑版开心版5.5.0免VIP导出补丁下载_替换一次即可长期使用
    剪映5.5.0免VIP导出补丁来了,可以使用VIP特效,文字转语音声效,滤镜,等全部需要VIP的素材,都可以直接导出,不需要VIP并且是需要替换一次,每次启动软件都是可以直接导出的,只要不重新安装剪映,都是可以使用的补丁对应版本:5.5.0(不是5.5.0版本会出现闪退)补丁安全无毒无广告使用教程:打开......
  • 剪映PC电脑版开心版5.5.0免VIP导出补丁下载_替换一次即可长期使用
    剪映5.5.0免VIP导出补丁来了,可以使用VIP特效,文字转语音声效,滤镜,等全部需要VIP的素材,都可以直接导出,不需要VIP并且是需要替换一次,每次启动软件都是可以直接导出的,只要不重新安装剪映,都是可以使用的补丁对应版本:5.5.0(不是5.5.0版本会出现闪退)补丁安全无毒无广告使用教程:打开......
  • 多平台自动养号【开心版】偷偷使用就行了!
    大家好,今天我无意间发现了一款【多平台自动养号工具】,看了一下里面的功能还是挺全面的,包含了【抖音,快手,小红薯】还有一些截流功能虽然这款工具功能强大,但美中不足的是需要付费的。但别担心,已经采取了一些行动,将其变成了开心版——懂的都懂,不付费大家都开心了。功能全解析:一......