数据结构——栈
MILLOPE
这个作者很懒,什么都没留下…
展开
-
CF1156E Special Segments of Permutation(单调栈)
题目 给定一个长度为nnn的排列ppp,求有多少区间[l,r][l,r][l,r]满足,p[l]+p[r]=maxp[i]p[l]+p[r]=max{p[i]}p[l]+p[r]=maxp[i],其中l<=i<=rl<=i<=rl<=i<=r 题解 预处理出左边第一个大于iii的数和右边第一个大于iii的数(单调栈维护一下即可) 左端点显然只能在(L,i)(L...原创 2019-10-31 11:26:42 · 150 阅读 · 1 评论 -
直方图中最大的矩形(单调栈)
题目 题目传送门题目传送门题目传送门 题解 如果矩形的高度从左向右单调递增,那么我们可以枚举每个矩形的高度,并把宽度延伸到左右边界,来计算面积,从中取得最大值来得到答案。 但实际上矩形高度不可能是单调递增的。 那么我们可以维护一个高度递增且宽度递增的矩形序列。 具体过程: 我们可以建一个栈用来保存每个矩形的高度。 从左向右遍历每个矩形,如果高度比栈顶高直接进栈。 如果高度小于栈顶,则不断取出栈...原创 2019-06-28 18:27:09 · 1619 阅读 · 0 评论 -
Editor(对顶栈)
题目 题目传送门 输入样例 8 I 2 I -1 I 1 Q 3 L D R Q 2 输出样例 2 3 题解 sumsumsum表示前缀和,pA,pBp_A,p_BpA,pB表示栈A,BA,BA,B的下标,fff为AAA的前缀和的最大值。 建立两个栈,栈AAA存储序列开头到光标位置,栈BBB存储光标位置到结尾 code #include <bits/stdc++.h> ...原创 2019-06-28 18:37:59 · 378 阅读 · 0 评论