zoukankan      html  css  js  c++  java
  • 单调队列模板

    #define N 100100

    /*
    *****************_单调队列模板_******************/ //基于单调队列功能的单一性:以limit为序查找在一定范围内的极值。 //复杂度:O(n) //用法: 创建的时候调用.init() // 插入队列:.push( Q_Node( KEY,LIMIT ) ); // 设置limit值:.setlimit( LIMIT ); // 查询<limit值的最大元素: Q_Node qn; q2.top(qn); // 再查询前需要设置limit值,如果队列为空返回false,否则将最大元素存入qn中并返回true struct Q_Node { int key,limit;//用来比较大小的key和控制存在时间的limit Q_Node(){} Q_Node(int _key,int _limit){ key=_key,limit=_limit; } }; struct Q_Que { Q_Node Q[N]; int qf,qd; int limit;// <limit 的元素将被弹出 void init() { qf = qd = 0;//将队列内元素清空 } void push(Q_Node newnode) {//默认入队是当前limit最大的 while (qf>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; } };
  • 相关阅读:
    office 2007
    关于网站爬虫的爬取
    华为交换机默认密码大合集
    一些不错的网站工具箱
    HDU 2023 求平均成绩
    HDU 2056 Rectangles
    HDU 2022 海选女主角
    HDU 2045 不容易系列之(3)—— LELE的RPG难题
    HDU 2042 不容易系列之二
    HDU 2044 一只小蜜蜂...
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/5782032.html
Copyright © 2011-2022 走看看