![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调栈
live4m
老菜逼了
展开
-
poj3250 Bad Hair Day (单调栈)
题意: 有n头牛,每头牛有身高h,所有牛都面朝右边,每头牛可以看到比他矮的牛, 如果有一头牛比他高(或者相等)就看不到再右边的牛了(被挡住了) 求所有牛可以看到的比他矮的牛的数量的总和 分析: 单调栈基本应用,对于每个数,计算他于他右边第一个比他大的数之间有多少数 单调递增栈,栈顶到栈底是递增的 栈中存放下标,每次用下标判断高度是否满足单调性 不满足则用栈顶元素更新答案,并且继续判断是否满足,直到...原创 2019-08-30 20:20:00 · 120 阅读 · 0 评论 -
poj2559 Largest Rectangle in a Histogram (直方图最大矩形面积 单调栈)
问题描述: 直方图是由在公共基线处对齐的一系列矩形组成的多边形。 矩形具有相等的宽度,但可以具有不同的高度。 例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1: 通常,直方图用于表示离散分布,例如,文本中字符的频率。 现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。 图例右图显示了所描绘直方图的最大对齐矩形。 输入格式 输入包含几个测试用例。 每...原创 2019-08-30 20:20:14 · 277 阅读 · 0 评论 -
poj3494 Largest Submatrix of All 1’s (最大全1矩阵 单调栈)
Largest Submatrix of All 1’s Given a m-by-n (0,1)-matrix, of all its submatrices of all 1’s which is the largest? By largest we mean that the submatrix has the most elements. Input The input contains ...原创 2019-08-30 20:20:27 · 188 阅读 · 0 评论 -
poj2796 Feel Good (单调栈+前缀和)
Feel Good Bill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good or bad days influent people’s memories about some period of life...原创 2019-08-30 20:20:37 · 163 阅读 · 0 评论 -
单调栈单调队列
单调栈 作用: 1.确定一个数左边(右边)区间第一个比它小(或大)的数或下标,据此可确定两者之间的区间长度和两者之间的数的数量 2.查找区间最值的最大扩展范围(区间长度),例如: 给定一序列,寻找某一子序列,使得子序列中的最小值乘以子序列的长度最大。 给定一序列,寻找某一子序列,使得子序列中的最小值乘以子序列所有元素和最大。 题集: 1.poj2796 Feel Good:题解 单调栈求最大扩展范...原创 2019-08-30 21:26:16 · 140 阅读 · 0 评论 -
CodeForces - 91 B.Queue (单调栈)
题意: 给长度为n的数列,找到每个数右边距离他最远的比他小数,输出他们之间有多少个数,如果右边没有比他小的,输出-1. 分析: 因为要找从右边开始第一个比他小的数 因此从右边向左遍历,同时维护一个递减序列 如果当前元素比序列最小值还小,则没有比他小的,输出-1 否则从序列中二分找出最右边比他小的数,然后计算答案 code: #include<cstdio> #include<cs...原创 2019-08-31 11:22:58 · 205 阅读 · 0 评论 -
nowcoder 区区区间间间 (单调栈)
链接:https://ac.nowcoder.com/acm/problem/20806 来源:牛客网 题目描述 给出长度为n的序列a,其中第i个元素为a[i] 区间[l,r]的价值为: 要求计算: 输入描述: 第一行输入数据组数T 对于每组数据,第一行为一个整数n,表示序列长度 接下来一行有n个数,表示序列内的元素 输出描述: 对于每组数据,输出一个整数表示答案 示例1 输入 3 3 4 2...原创 2019-09-23 15:23:03 · 282 阅读 · 0 评论 -
2019牛客多校第一场A.Equivalent Prefixes(单调栈)
输入 2 1 2 2 1 3 2 1 3 3 1 2 5 3 1 5 2 4 5 2 4 3 1 输出 1 3 4 题意: 给两个长度为n的数组a,b 求一个最大的p,使得: a,b数组[1,k]区间中最小值下标相同(k<=p) 思路: 两个栈维护两个数组每个点左边比他小的数的位置 当两个栈的大小不一样的时候说明下标不同,不满足,否则满足 code: #include<iostrea...原创 2019-09-24 10:43:23 · 143 阅读 · 0 评论