#define N 100100 /******************_单调队列模板_******************///基于单调队列功能的单一性:以limit为序查找在一定范围内的极值。//复杂度:O(n)//用法: 创建的时候调用.init()// 插入队列:.push( Q_Node( KEY,LIMIT ) );// 设置limit值:.setlimit( LIMIT );// 查询qd && Q[qf-1].key < newnode.key) qf--; Q[qf++] = newnode; } void setlimit(int _limit) { limit = _limit; } /* 取出队列中>=limit且key最大的元素。 */ bool top(Q_Node &rt) { while(qf>qd && Q[qd].limit < limit) qd++; if(qf==qd) return false; rt = Q[qd]; return true; }};