洛谷多维DP(4):P1417 烹调方案——泛化背包,贪心+DP

P1417 烹调方案

在这里插入图片描述

输入输出样例
输入 #1复制
74 1
502
2
47
输出 #1复制
408

总结目录

1.什么是泛化物品
2.状态方程的书写,排序与DP的原因

1 什么是泛化物品

参考 https://www.kancloud.cn/kancloud/pack/70132
泛化物品是指,物品的价值会随着物品的cost而变化。假设cost为一个变量,那么value=value(cost)。在过去的背包问题中,01背包,完全背包,多重背包物品的价值都是不会改变的。而在分组背包中,先后遍历了组,cost,组内物品,其本质是将节点进行了压缩,取相同cost下的最大价值(类似于01背包中说的“一个简单的优化”)。因此,泛化物品的主要要点有2个,一个就是val是cost的函数,而根据题目得到这个函数需要进行状态压缩。

在这里插入图片描述
在01背包中,物品的价值只有在恰好为cost的时候有价值,即 val(cost) != 0,而 其余的时候 val == 0. 在附件背包中,先通过01背包对同一组内的状态进行压缩,将多种方案泛化为一个物品,然后再在总体计算的时候使用分组背包进行计算。

特别的,我们可以计算两个泛化物品合并为一个泛化物品,计算的方法如上所示,只需枚举给两个物品的资源,然后进行筛选最优(即状态压缩即可)

for v==0: V //总的资源为V
	for k==0:V //分配给物品1的c
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值