何为单调栈,顾名思义,单调栈即满足单调性的栈结构。

单调栈解决的问题:
可以找到对于当前位置左边(或右边)最近的大于(或小于)它的值(或者下标)。
常用模板:

typedef long long int LL;
const int N=1e6+10;
LL h[N],lmax[N],rmax[N],n;
//lmax[i]左边最近的比它大的数的下标
//rmax[i]右边最近的比它大的数的下标
void init()
{stack<int>st;for(int i=1;i<=n;i++){while(st.size()&&h[st.top()]<=h[i]) st.pop();if(st.size()) lmax[i]=st.top();st.push(i);}while(st.size()) st.pop();for(int i=n;i>=1;i--){while(st.size()&&h[st.top()]<=h[i]) st.pop();if(st.size()) rmax[i]=st.top();st.push(i);}
}

找最近的比它小的数的模板,和上面的几乎一样,只不过比较符号取相反的就行了。
入门习题:
830. 单调栈
P1901 发射站
P1823 [COI2007] Patrik 音乐会的等待
131. 直方图中最大的矩形

ACM入门之【单调栈】相关推荐

  1. 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈

    总结  本章主要关注一个重要的问题 – 单调队列和单调栈的使用  同时还有一些其他的问题,如扫描法,递归的思想, 构造, 分治, 二分等 知识点 单调队列 和 单调栈 题目 UVA - 1606 Am ...

  2. 算法竞赛入门与进阶 (二)单调队列、单调栈

    栈(stack)和队列( queue ) 1.栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 2.队列的定义:队列是一种特殊的线性表,特殊之处在于 它只允许在表的前端(front)进 ...

  3. 蒟蒻的ACM数据结构(四)-单调队列和单调栈

    单调队列和单调栈 一.概念 二.实现 三.题目 单调队列 洛谷P1886 滑动窗口 解析 单调栈 [GXOI/GZOI2019]与或和 解析 POJ3250 Bad Hair Day 解析 POJ 2 ...

  4. 【每日训练】2020/11/8(规律 + 二进制、单调栈 + 前缀和,后缀和、bitset + 枚举)

    整理的算法模板合集: ACM模板 目录 1. NC 打铁的箱子(规律 + 二进制) 2. NC 最优屏障(单调栈 + 前缀和,后缀和) 3. CF993C Careful Maneuvering(bi ...

  5. 0x11.基本数据结构 — 栈与单调栈

    目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...

  6. 【数据结构】单调栈和单调队列 详解+例题剖析

    算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...

  7. 六十五、下一个更大的数系列,单调栈解决方法

    @Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校的2020新生. ...

  8. 2021牛客多校2 - Stack(单调栈+拓扑)

    题目链接:点击查看 题目大意:给出 b[i]b[i]b[i] 数组的求解过程: Stk is an empty stack for i = 1 to n :while ( Stk is not emp ...

  9. 牛客 - 牛牛的滑动窗口(单调栈+思维+差分)

    题目链接:点击查看 题目分析:给出 nnn 个数,定义滑动窗口的贡献是其中最大值与最小值的乘积,现在问对于长度分别为 [1,n][1,n][1,n] 的滑动窗口,贡献之和分别是多少 题目分析:考虑暴力 ...

最新文章

  1. 谁是谢源?广西理科探花、清华电子系学霸、阿里AI芯片带头大哥、新晋ACM Fellow...
  2. 【Boost】boost库asio详解9——TCP的简单例子2
  3. python二维元素向量_详解python Numpy中求向量和矩阵的范数
  4. oracle计算表的大小,简要分析估算oracle表的大小
  5. java 课后习题 随机数统计
  6. android 代码功能测试,Android触屏测试实例代码
  7. oracle异步sql,Linux上Oracle是否使用异步io的诊断
  8. 1622: [Usaco2008 Open]Word Power 名字的能量
  9. Java核心技术读书笔记(2013-01-11)
  10. 滑动菜单栏(一)开源项目SlidingMenu的使用
  11. Assigning retained object to weak property object will be released after assignment
  12. 软考 - 系统架构设计师资料
  13. Mac双开微信(2种方法)、Win多开微信
  14. java android实习报告,java和安卓实习报告.pdf
  15. ANSYS应力工具与四大强度理论
  16. python生成PDF报告
  17. [02/Dec/2019:12:59:10 +0800]之日期转换
  18. 为地图marker 设置网络图片
  19. 上计会青少年算法竞赛3月月赛
  20. 上传图片到OSS,并按指定大小范围压缩图片。完整工具类+三层调用

热门文章

  1. OS_CORE.C(4)
  2. pyhton (一)基础
  3. C/C++宏定义中#与##区别 .
  4. 导航栏对于UIScrollview以及子类所做的一些事
  5. ACM 进阶计划~~转
  6. 区块链BaaS云服务(36)欧盟EBSI“使用场景”
  7. [现代操作系统] 考前突击
  8. React Axios的定义,以及使用方式
  9. 【Python植物大战僵尸军团来袭】“大家快醒一醒、一大波僵尸来了”
  10. 05-cache相关的系统寄存器