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


找端点可以二分。

相关推荐
源代码•宸2 天前
Leetcode—322. 零钱兑换【中等】(memset(dp,0x3f, sizeof(dp))
c++·算法·leetcode·职场和发展·dp
Qres8219 天前
[SCOI2014] 方伯伯的玉米田(dp+树状数组维护行列)
数据结构·dp·ds
源代码•宸15 天前
Leetcode—72. 编辑距离【中等】
c++·算法·leetcode·dp
WJX57421 天前
最长公共子序列
dp
sweetheart7-725 天前
LeetCode152. 乘积最大子数组(2024秋季每日一题 2)
数据结构·算法·动态规划·dp·每日一题
源代码•宸1 个月前
Leetcode—1143. 最长公共子序列【中等】
c++·经验分享·算法·leetcode·dp
rgw20102 个月前
P1973 [NOI2011] NOI 嘉年华
指针·dp·noi·线段树优化 dp
rgw20102 个月前
P1081 [NOIP2012 提高组] 开车旅行
动态规划·dp·倍增·noip·倍增优化 dp
硕风和炜2 个月前
【LeetCode:3098. 求出所有子序列的能量和 + 记忆化缓存】
java·算法·leetcode·缓存·dp·递归
Tisfy3 个月前
LeetCode 2741.特别的排列:状压DP
算法·leetcode·动态规划·题解·dp·状压dp