固定区间最值查询

(1 min to read)

对于一维,用单调队列就可以解决。二维的话,先对每一列做一遍,然后压缩成一维更高维同理。。。

这里主要记录一下前k优最值的记录例如现在要求固定区间的最小值和次小值。我们只需要维护两个单增队列。每当移动r指针,先维护第一个队列的单调性,弹出的元素塞到第二个队列中。那么次大值就是第一个栈中的次大值或者第二个栈中的最大值。

另外可以采用双栈模拟队列的方式,栈中存的是pair(当前元素大小,栈底到当前元素的最小值)。同理对于k小值只要修改second为k维的tuple即可。