单调队列
例题:
Poj 2823
给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。...3、保持队列单调,最大值是单调递减序列,最小值反之
4、最优选择在队首
单调队列实现的大致过程:
1、维护队首(对于上题就是如果队首已经是当前元素的m个之前,则队首就应该被删了,head++)
2、在队尾插入...0放入队列中,我们用(6,0)表示,每一步插入元素时队列中的元素如下
插入6:(6,0);
插入4:(6,0),(4,1);
插入10:(10,2);
插入第二个10,保留后面那个:(10,3);
插入...:6,6,10,10,10,10,8,6,12,14
同理,最小值也可以用单调队列来做。...更重要的:单调是一种思想,当我们解决问题的时候发现有许多冗杂无用的状态时,我们可以采用单调思想,用单调队列或类似于单调队列的方法去除冗杂状态,保存我们想要的状态。