随笔分类 -  数据结构--单调队列

摘要:前言 提供一种不需要并查集的严格线性做法。 其实也差不了多少。 题目 题目链接 分析 题目描述稍微有点复杂,其实我们可以直接看成是这样的问题: 给定 \(m\) 个多米诺骨牌,每个有高度和价值,要求推倒所有的骨牌,求最小代价。(推动的规则见题面最后一段) 显然可以考虑 dp 来做,设 \(dp[i] 阅读全文
posted @ 2021-09-13 18:52 __Anchor 阅读(38) 评论(0) 推荐(0)
摘要:题目 给定n,k和一个长度为n的序列,求最长的最大值最小值相差不超过k的序列 分析 可以直接双指针+RMQ来维护,复杂度是 \(O(nlogn)\) 的(约束RMQ爬)。 这里讲一个单调队列的思路。 维护两个单调队列,一个单调上升,一个单调下降。 然后每加入一个元素先更新两个队列,然后看一下两个队首 阅读全文
posted @ 2021-06-25 20:34 __Anchor 阅读(87) 评论(0) 推荐(1)
摘要:P3648 [APIO2014]序列分割 首先,我们发现这个数据范围明显就是 \(O(nk)\) 的。 那么我们可以考虑直接 dp 了,设 \(dp[i][j]\) 为前 \(i\) 个数划分完毕,划分了 \(j\) 次,最后一次划分在 \(i\) 位置的最大贡献。 那么我们的柿子很明显就是 \(d 阅读全文
posted @ 2021-04-19 16:13 __Anchor 阅读(61) 评论(0) 推荐(0)
摘要:题面 传送门 分析 一道较为简单的单调队列题目 思路和上一道题很像,就是枚举右端点,然后找到满足条件的“最左”的左端点 怎么找呢,我们发现随着右端点的右移,其实左端点也在不断地右移,那么就是左端点单调不减 然后我们就可以想到单调队列来维护了 队列当中维护的信息是什么呢... 左端点位置?不是。 因为 阅读全文
posted @ 2020-12-12 17:45 __Anchor 阅读(110) 评论(0) 推荐(0)