![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单调栈
litmxs
博客内容如有错误,还望指正
展开
-
Educational Codeforces Round 23 817-D Imbalanced Array 单调栈
题目链接: Imbalanced Array大意定义一个区间不平衡值为: 区间最大值-区间最小值 一个长度为n的数组a, 求其所有子区间的不平衡值的和 1≤n≤1061 \leq n \leq 10^6思路∑n−1i=0a[i]∗a[i]作为最左最大值出现的区间个数−a[i]∗a[i]作为最左最小值出现的区间个数\sum_{i=0}^{n-1} a[i]*a[i]作为最左最大值出现的区间个数 -原创 2017-07-17 10:02:10 · 300 阅读 · 0 评论 -
Lexicographically Maximum Subsequence CodeForces - 197C 单调栈
题目链接: Lexicographically Maximum Subsequence CodeForces - 197C题目大意给你一个只包含小写字母大字符串s(|s|≤105|s| \leq 10^5), 求它字典序最大的子序列思路字典序要大, 那么第一个字母一定要是所有字母里面最大的, 然后第二个字母一定要是第一个字母后面所有字母中最大的, 依次类推 所以这个子序列: 原来字符串的顺序,原创 2017-07-21 21:53:16 · 575 阅读 · 0 评论 -
Codeforces Round #484 (Div. 2) D. Shark
题目链接:D. Shark 题目大意 一个数组a[i], 长度为n,选一个数字k,将所有大于等于k的数字去掉,让剩下的每一段子段长度相等(且字段长度不能为0),求让子段数量最多的最小的k 思路 利用单调栈求出l[i]:=a[i]往左第一个大于a[i]的元素的下标,如果不存在则为0,r[i]:=a[i]往右第一个大于a[i]的元素的下标,如果不存在则为n+1 很容易看出k一定是某个a[...原创 2018-07-14 12:54:54 · 175 阅读 · 0 评论