单调栈
Mavis code
这个作者很懒,什么都没留下…
展开
-
2019暑假牛客第4场-C,sequence-线段树+单调栈
题面:这道题一直段错误,看了我一上午都没看出来,每班只有和别人AC的代码(和我的思路差不多的人去对比代码),结果发现线段树板子有问题,我也是醉了。思路:我用的是线段树+树状数组,代码的具体解释看代码注释。世界上最美好的快感莫过于,久WA之后AC的快感了。AC code:#include<bits/stdc++.h>#define per(i,a,b) for(int...原创 2019-07-29 21:33:21 · 280 阅读 · 0 评论 -
2019暑假牛客第二场-H-Second Large Rectangle-单调栈(详解)
题面:思路:每一行跑一遍单调栈。为什么会想到单调栈?因为在计算矩形的时候,高是由短板决定的(短板效应)。维护一个单调递增的单调栈。每个点出栈时,才真正计算有该点的高决定的最大矩形。每个点在入栈时记录它入栈时弹出的元素,再加上它本身,这记录的是该点向左延伸的最大宽度,但是后面延伸的最大长度,要等到遍历了后面的元素才能知道,所以还要记录一个向后面延伸的最大长度,由后面(高到低)叠加,...原创 2019-07-21 17:17:41 · 136 阅读 · 0 评论 -
2019暑假牛客第3场-F - Planting Trees-单调队列
题面:题目传送门题解:#include<bits/stdc++.h>#define per(i,a,b) for(int i = (a);i <= (b);++i)#define rep(i,a,b) for(int i = (a);i >= (b);--i)#define INF 1e6using namespace std;const int ma...原创 2019-07-27 10:00:44 · 127 阅读 · 0 评论 -
2019暑假牛客第8场-A-All-one Matrices-单调栈+前缀和
题面:思路:因为左右上边界已经确定了,所以只要判断下边界能否拓展即可(如果不可以拓展就说明这是一个极大矩形,++ans).比赛的时候想跑完然后再判断那些是极大矩形,然后各种判断,最后不出所料的写崩了。边跑便判断,还有就是跑完,然后再判断。掌握局部信息就判断(这样可以避免无关信息的干扰),掌握全局信息之后再判断,就容易受各种信息的干扰,也就是随着时间的运行,无用信息将有用信息覆盖了。...原创 2019-08-11 10:46:28 · 162 阅读 · 0 评论