数据结构模板--混乱
1:单调队列
PS:求滚动区间最值 神器
//单调递增队列1 子区间动态更新 const int maxn=100;int que[maxm*10+5], idx[maxm*10+5], head = 1, tail = 0;void queini(){head = 1, tail = 0, que[0] = 0;// 单调减 que[0] = 99999999; } int quein(int index, int value){while(head <= tail && que[tail] <= value) tail--;que[++tail] = value;idx[tail] = index;return 0;}int queout(int index, int distence)//index 索引 distence离索引距离 {while(idx[head] <= index - distence) head++;return 0;}//单调递增队列2int num[1000001], que[1000001], first, tail;void queini(){first = 1, tail = 0, que[0] = 0;}int quein(int index){while(num[que[tail]] >= num[index] && first <= tail) tail--;que[++tail] = index;return 0;}int queout(int index, int distence){while (que[first] <= index - distence) first++;return 0;}