基础数据结构 (练习笔记)(25.11.14)
基础数据结构 (练习笔记)
单调队列
首先看题目的需要,是区间最大和,所以可以维护一个前缀和最小值,然后依次去减去做维护统计就可以得到区间最大和,区间最小值使用单调队列维护
与一般的单调队列不一样的是,这个多了一个下界的长度,所以我们在枚举到\(i\)的时候,实际是需要拿\(i-p\)做为将要入队的元素进行比较
单调栈
SP1805 HISTOGRA - Largest Rectangle in a Histogram
这道题,主要是去考虑怎么去使用所有的最大矩形。因为一个对于新的矩形的话,它是会使前面的一些矩形加宽的,然后发现可以把每个去进行合并,并且一定是单调递增,否则宽度合并是无用的。所以就想到可以用单调栈,去维护一个单调上升序列,然后用来去计算面积。
这道题也是一个合并类型问题,在找规律的时候发现两个数合并都是单调递增并且要比中间数的和大的,也就是始终满足单调性,而且还有一些合并操作,所以就考虑单调栈,使用入栈出栈维护合并操作

浙公网安备 33010602011771号