二分队列+决策单调性优化dp:P6246

https://www.luogu.com.cn/problem/P6246

决策单调性

若 d p i dp_i dpi 由 j j j 转移,则 d p i + 1 dp_{i+1} dpi+1 转移点 k k k 满足 k ≥ j k\ge j k≥j

发现决策点满足单调,但遍历的点不满足单调,不能用双指针,考虑二分队列。

二分队列

假设前 i i i 个已定,只考虑从前转移到后,当前后面那一段必然会分成很多段,段与段直接的转移点必然是单调递增的。

后面的我们可以考虑用单调队列维护。

当加入新决策点 i + 1 i+1 i+1 时,必然是先pop掉尾部一些区间,然后再和当前最末尾的一个共享一个区间


找端点可以二分。

相关推荐
dengqingrui1231 个月前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
疯狂的小强呀1 个月前
超详细讲解:DP和DDP的区别以及使用方法
算法·dp·ddp
Jcqsunny1 个月前
[dp] 小信走迷宫
算法·前缀和·动态规划·dp
源代码•宸2 个月前
Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))
c++·算法·leetcode·职场和发展·dp
Qres8212 个月前
[SCOI2014] 方伯伯的玉米田(dp+树状数组维护行列)
数据结构·dp·ds
源代码•宸2 个月前
Leetcode—72. 编辑距离【中等】
c++·算法·leetcode·dp
WJX5742 个月前
最长公共子序列
dp
sweetheart7-72 个月前
LeetCode152. 乘积最大子数组(2024秋季每日一题 2)
数据结构·算法·动态规划·dp·每日一题
源代码•宸3 个月前
Leetcode—1143. 最长公共子序列【中等】
c++·经验分享·算法·leetcode·dp
rgw20103 个月前
P1973 [NOI2011] NOI 嘉年华
指针·dp·noi·线段树优化 dp