单调栈
weixin_44019404
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
广州大学第十四届ACM大学生程序设计竞赛 J 登顶
当前我们执行到第iii位置的时候,我们以iii结尾的字串,一共有iii个。 分别是[1,i],[2,i],[3,i]..[i,i][1,i],[2,i],[3,i]..[i,i][1,i],[2,i],[3,i]..[i,i]然后令单调栈mx,mnmx,mnmx,mn保存最大值和最小值。我们可以发现的是,以某一个点为终点后,每一个最大/小值是向前作用的。并且具有单调性,即,[j,i][j,i][j,i]的最大值是kkk,那么[1,j−1][1,j-1][1,j−1]的最大值就不会小于kkk。所以利用单调栈保原创 2020-07-29 00:21:51 · 314 阅读 · 0 评论 -
Open cup 2019 Korea Gym 102059A Coloring Roads
树链剖分。 先做轻重链剖分后,维护每一条链上的信息。初始树为空。 以每一条重链的头top为基点,建立单调栈。栈内维护,从大到小,该链上修改的深度,以及对应颜色。 每一次修改,如果栈内有比他浅的点,即,若我们把当前的颜色涂上,会使得之前的颜色覆盖掉,故我们清除掉该颜色。不断弹栈,直到为空或者栈顶比他深度深。若栈顶比他深,优先修改,当前的颜色的深度,即,把深度更深的颜色,给修改为空,我们才能重新计算并且涂上颜色。 然后每一个跳top的father的时候,我们单独把所有的,这样的top-father拿出来计算即可原创 2020-07-09 19:59:11 · 237 阅读 · 0 评论 -
Codeforces Round #618 1300E Water Balance
分块讨论。字典序最小,则,当i-1满足最小时,第i个也必须要满足往后找平均数使得第i个最小。 即,因为答案最后肯定是多个块组成,我们讨论第k块,当第k块最小时,k+1,k+2。。。。往后的所有块,均值一定大于第k快的均值,否则,将后面的块向前合并,一定更优。满足单调性,利用单调栈即可解决。 #include<iostream> #include<cstring> #incl...原创 2020-04-28 22:29:09 · 114 阅读 · 0 评论 -
kuangbin后缀数组 - I题 POJ3415 单调栈解法
题意,给出两个字符串,给一个k,求出满足a的字串与b的子串完全一样的长度>=k的所有情况的数量。 翻译一下题意就是求所有后缀中,lcp>=k的即可。 我们拼接两个字符串,中间用不出现的字符隔开即可。 然后就是如何求解的问题。 我们知道lcp(i,j)=min(height[i+1],…,height[j]) 所以我们进行da()后,getheight()获得数组后,就可以利用单调栈的性...原创 2019-12-03 22:13:53 · 119 阅读 · 1 评论 -
求次大矩形面积 牛客多校
记录一下板子求矩形面积的。 这里注意次大的面积要计算,(l-1)*h,和(h-1)*l #include<iostream> #include<string> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits> #include<...原创 2019-08-10 13:02:16 · 114 阅读 · 0 评论 -
2019牛客暑期多校训练营(第八场) All-one Matrices
关于矩形的单调栈处理,这是这类题目第三次见到了,每次都只是少许变化。 wa了很多发,模拟的时候还是应该尽量小心。 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<cstdlib> #include<climits>...原创 2019-08-14 21:46:45 · 110 阅读 · 0 评论
分享