ACM入门之【单调栈】
何为单调栈,顾名思义,单调栈即满足单调性的栈结构。
单调栈解决的问题:
可以找到对于当前位置左边(或右边)最近的大于(或小于)它的值(或者下标)。
常用模板:
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入门之【单调栈】相关推荐
- 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈
总结 本章主要关注一个重要的问题 – 单调队列和单调栈的使用 同时还有一些其他的问题,如扫描法,递归的思想, 构造, 分治, 二分等 知识点 单调队列 和 单调栈 题目 UVA - 1606 Am ...
- 算法竞赛入门与进阶 (二)单调队列、单调栈
栈(stack)和队列( queue ) 1.栈的定义:栈是限定仅在表头进行插入和删除操作的线性表(先进后出) 2.队列的定义:队列是一种特殊的线性表,特殊之处在于 它只允许在表的前端(front)进 ...
- 蒟蒻的ACM数据结构(四)-单调队列和单调栈
单调队列和单调栈 一.概念 二.实现 三.题目 单调队列 洛谷P1886 滑动窗口 解析 单调栈 [GXOI/GZOI2019]与或和 解析 POJ3250 Bad Hair Day 解析 POJ 2 ...
- 【每日训练】2020/11/8(规律 + 二进制、单调栈 + 前缀和,后缀和、bitset + 枚举)
整理的算法模板合集: ACM模板 目录 1. NC 打铁的箱子(规律 + 二进制) 2. NC 最优屏障(单调栈 + 前缀和,后缀和) 3. CF993C Careful Maneuvering(bi ...
- 0x11.基本数据结构 — 栈与单调栈
目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...
- 【数据结构】单调栈和单调队列 详解+例题剖析
算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...
- 六十五、下一个更大的数系列,单调栈解决方法
@Author:Runsen 编程的本质来源于算法,而算法的本质来源于数学,编程只不过将数学题进行代码化. ---- Runsen 据说,放张小姐姐觉得照片可以提高阅读量,图是来源学校的2020新生. ...
- 2021牛客多校2 - Stack(单调栈+拓扑)
题目链接:点击查看 题目大意:给出 b[i]b[i]b[i] 数组的求解过程: Stk is an empty stack for i = 1 to n :while ( Stk is not emp ...
- 牛客 - 牛牛的滑动窗口(单调栈+思维+差分)
题目链接:点击查看 题目分析:给出 nnn 个数,定义滑动窗口的贡献是其中最大值与最小值的乘积,现在问对于长度分别为 [1,n][1,n][1,n] 的滑动窗口,贡献之和分别是多少 题目分析:考虑暴力 ...
最新文章
- 谁是谢源?广西理科探花、清华电子系学霸、阿里AI芯片带头大哥、新晋ACM Fellow...
- 【Boost】boost库asio详解9——TCP的简单例子2
- python二维元素向量_详解python Numpy中求向量和矩阵的范数
- oracle计算表的大小,简要分析估算oracle表的大小
- java 课后习题 随机数统计
- android 代码功能测试,Android触屏测试实例代码
- oracle异步sql,Linux上Oracle是否使用异步io的诊断
- 1622: [Usaco2008 Open]Word Power 名字的能量
- Java核心技术读书笔记(2013-01-11)
- 滑动菜单栏(一)开源项目SlidingMenu的使用
- Assigning retained object to weak property object will be released after assignment
- 软考 - 系统架构设计师资料
- Mac双开微信(2种方法)、Win多开微信
- java android实习报告,java和安卓实习报告.pdf
- ANSYS应力工具与四大强度理论
- python生成PDF报告
- [02/Dec/2019:12:59:10 +0800]之日期转换
- 为地图marker 设置网络图片
- 上计会青少年算法竞赛3月月赛
- 上传图片到OSS,并按指定大小范围压缩图片。完整工具类+三层调用