单调队列
这一部分主要是滑动窗口的一些最直接的应用题
1. Acwing 154 滑动窗口
求固定长度内滑动窗口的最值,单调队列的模板题
2. 洛谷 P1440 求m区间内的最小值
模板题的简化版,不过要注意滑动窗口是否包括了当前遍历的数
3. Acwing 467 港口
准确来说,这是一道队列题,不过里面有用到滑动窗口的概念,刚好题目里面也有一些细节,可以拿来练练模拟题
4. Acwing 1091 理想的正方形
这是一个求二维滑动窗口内的最小值与最大值的模板题
5. CF1731D. Valiant’s New Map
二分+二维滑动窗口最小值
单调队列与其他算法
这部分,见得多的是单调队列与前缀和的结合
1. Acwing 135 最大子序和
单调队列+前缀和
2. 洛谷 P2629 好消息,坏消息
破环成链+前缀和+单调队列
3. Acwing 1088 旅行问题
第2题的进阶版,顺时针+逆时针破环成链
单调队列与DP
(1) 简单dp(连续K个位置XXX)
这类dp提示的比较明显,而且滑动窗口长度是固定的,但是细节仍然有很多,具体而言就是,容易想到思路,但是容易卡在细节上。
一般的细节有:
- 当前遍历的值是否包含在滑动窗口内(决定了是先将当前元素放到窗口里再更新f[i]还是相反)
- 滑动窗口的长度,起始位置
- 滑动窗口表示的是什么
1. Acwing 1087 修剪草坪
不能选超过K个连续位置
2. 洛谷 P2034 选择数字
同题1
3. Acwing 1089 烽火传递
连续m个位置至少选一个
4. Acwing 1090 绿色通道
二分+烽火传递
(2) 稍微复杂一点的dp
1. Acwing 6 多重背包问题 III
这个可以背模板
2. Acwing 298 围栏
比题1难,但其实在某种程度上和题1有点像
3. CF940E Cashback
这个搞清楚dp的话,单调队列优化不是很难
4. CF939F Cutlet
这个首先分析dp比较难,然后有一个单调队列需要倒着维护,总体而言(o゚v゚)ノ,害,我只能看着题解写