二分队列+决策单调性优化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掉尾部一些区间,然后再和当前最末尾的一个共享一个区间


找端点可以二分。

相关推荐
sweetheart7-74 天前
LeetCode1143. 最长公共子序列(2024冬季每日一题 36)
算法·动态规划·力扣·dp·最长公共子序列
終不似少年遊*6 天前
Python数据结构与算法03
开发语言·数据结构·python·算法·蓝桥杯·学习笔记·dp
丶Darling.1 个月前
Day41 | 动态规划 :完全背包应用 完全平方数&&单词拆分(类比爬楼梯)
算法·动态规划·dp·lambda·记忆化搜索·回溯·c++\
dengqingrui1233 个月前
【树形DP】AT_dp_p Independent Set 题解
c++·学习·算法·深度优先·图论·dp
疯狂的小强呀3 个月前
超详细讲解:DP和DDP的区别以及使用方法
算法·dp·ddp
Jcqsunny3 个月前
[dp] 小信走迷宫
算法·前缀和·动态规划·dp
源代码•宸3 个月前
Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))
c++·算法·leetcode·职场和发展·dp
Qres8213 个月前
[SCOI2014] 方伯伯的玉米田(dp+树状数组维护行列)
数据结构·dp·ds
源代码•宸4 个月前
Leetcode—72. 编辑距离【中等】
c++·算法·leetcode·dp
WJX5744 个月前
最长公共子序列
dp