单调栈&单调队列
文章平均质量分 59
1
kaka0010
退役ACMer/算法竞赛菜鸡
展开
-
HDU多校第四场1005 Didn‘t I Say to Make My Abilities Average in the Next Life?! 单调栈+莫队
原题链接:https://acm.hdu.edu.cn/showproblem.php?pid=6989 题意 给你一个数列,定义一个区间的平均值为(Max+Min)/2,询问一个区间的所有平均值的期望是多少。 分析 我们把题目的式子化简一下,就是∑max+∑min2∗len∗(len+1)2\frac{\sum max+\sum min}{2*\frac{len*(len+1)}{2}}2∗2len∗(len+1)∑max+∑min =∑max+∑minlen∗(len+1)=\frac{\sum m原创 2021-08-05 21:12:09 · 109 阅读 · 0 评论 -
Wannafly挑战赛18 E.极差 线段树+单调栈
原题链接:https://ac.nowcoder.com/acm/contest/129/E 目录题意分析Code 题意 给出三个长度为n的序列,一个区间[l,r]的价值定义为三个区间内最大和最小值之差的乘积,求区间和,对2^32取模。 分析 对于最大最小值之差的问题,我们可以枚举右断点,左端点利用单调栈进行维护。 需要开两个单调栈,一个维护最大值区间,一个维护最小值区间。 对于维护最小值的单调栈,栈内元素应该单调递增,因为右端点确定的情况下,如果是左边存在比当前元素大的值,那么那个值对右边的最小值已经不会原创 2021-08-04 17:03:31 · 194 阅读 · 0 评论 -
Codeforces Round #710 (Div. 3) G. Maximize the Remaining String 单调栈
原题链接:https://codeforces.ml/contest/1506/problem/G 目录题意分析Code 题意 有一个字符串,你可以删掉一些字符,要求最开始每个字符都至少剩一个且字典序最大 分析 首先满足单调性,其次要求每个字符都剩至少一个,可以用单调栈解决,记录后面还剩几个该字符,如果没有,就留下,如果还有,就可以被替换 Code #include <iostream> #include <cstdio> #include <cstring> #incl原创 2021-04-15 17:40:16 · 89 阅读 · 0 评论 -
P3246 [HNOI2016]序列 单调栈+莫队
原题链接:https://www.luogu.com.cn/problem/P3246 题意 给你一个数列,每次询问一个区间,问当前区间的所有子区间的最小值之和 分析 非常典中典的问题,因为是询问所有子区间,自然我们想到固定一个端点,然后去寻找另一端点的可行区域。题目是维护最小值,我们可以用单调栈先处理出左端比当前数小的第一个位置l[i]和右端比当前数小的第一个端点r[i]。 然后就是用莫队去维护[l,r][l,r][l,r]区间内的值,考虑区间拓展到[l,r+1][l,r+1][l,r+1],那么从本质上原创 2021-08-05 20:58:38 · 145 阅读 · 0 评论