单调队列模板

单调队列:(两个数组,一个存编号,一个存值)【可用于多重背包等动规问题的优化,滑动窗口等问题】
1.求出新值并入队,储存编号;
2.维护队列,老且无用者出队;
3.可以先求值入队再维护,也可以先维护再求值入队;
4.依据题来确定队列的单调增减

模板:

for( i ; 1 - n )
{
	while(head<=tail&& 二元关系(que[tail].value , a[i]) )  tail--;
	que[++tail].value = a[i]; que[tail].time = i;
	while(head<=tail&& i-que[head].time <= 时间限制 ) head++;
}
原文地址:https://www.cnblogs.com/DeepJay/p/12025223.html