单调栈
Hanks_o
一名。
展开
-
bzoj1113: [Poi2008]海报PLA(单调栈)
题目传送门 。解法: n个矩形最多n张海报。 减少海报的条件就是两张海报高度相同。 因为如果高度不相同的话一张海报横着那么其他的还是要那么多。 所以单调栈维护下咯。代码实现:#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#inc...原创 2018-03-20 20:16:26 · 247 阅读 · 0 评论 -
bzoj1345: [Baltic2007]序列问题Sequence(单调栈)
题目传送门 。解法: 只有我写的是单调栈吗? 维护一个单调递减的栈。 那么每次进来一个元素x 如果大于栈顶的话。说明栈顶要被消除了。栈顶与栈顶下一个可以认为是挨在一起的。 x与栈顶可以认为是挨在一起的。 所以比较x与栈顶下一个的大小加到答案里即可。跑完一遍之后可能栈还有元素没消除完。 从栈顶往下慢慢消就行。代码实现:#include<cstdio>...原创 2018-04-07 17:01:35 · 253 阅读 · 0 评论 -
bzoj3190: [JLOI2013]赛车(单调栈)
题目传送门 。解法: 跟水平可见直线很像啊。只不过这道题是从y轴开始的射线。 思路其实差不多。单调栈维护下凸包。 先按照直线的k排序。 那么进来之后t其他直线。当前直线为i。栈顶直线为x。 如果i和x的交点在y轴左侧。 那么说明在起点之前x才能超过i。 那么这是不合法的,所以把x踢掉。然后剩下的就是水平可见直线了。 栈顶下一个元素为y。 如果i和x的交点在x和y...原创 2018-04-16 12:53:08 · 261 阅读 · 0 评论 -
bzoj1007: [HNOI2008]水平可见直线(单调栈)
题目传送门 做完这题推荐3190。升级版解法: 单调栈维护下凸包 先按直线的k来排序 当前直线为i,栈顶为x,栈顶下一个为y。 如果i和x的交点在x和y的交点的左边的话。 那么x是看不到的。踢掉。最后剩下的就是答案。代码实现:#include<cstdio>#include<iostream>#include<algorithm&g...原创 2018-04-16 12:55:19 · 251 阅读 · 0 评论