AT_abc219_d [ABC219D] Strange Lunchbox 的题解

这是一篇关于解决StrangeLunchbox问题的技术文章,作者使用动态规划的方法,通过状态dp[i][j][k]表示前i个物品中第一个约束选取j个,第二个约束选取k个的最小方案。文章详细解释了状态转移方程并提供了C++代码实现。

AT_abc219_d [ABC219D] Strange Lunchbox 的题解

洛谷传送门
AT传送门

思路

第一眼看出是一道动态规划,只不过限制状态有两层。

d p i , j , k \mathit{dp}_{i,j,k} dpi,j,k 表示前 i i i 个物品第一个约束条件取 j j j 个第二个约束条件取 k k k 个的最小方案。

然后可以仿照背包问题将 i i i 那一维给删掉,其实删不删空间都够。

注意这里是至少,因此转移方程为 d p i , j = min ⁡ ( d p i , j , d p max ⁡ ( 0 , j − a i . x ) , max ⁡ ( 0 , k − a i . y ) + 1 ) \mathit{dp}_{i,j}=\min(\mathit{dp}_{i,j},\mathit{dp}_{\max(0,j-a_{i}.x),\max(0,k-a_{i}.y)}+1) dpi,j=min(dpi,j

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值