随笔分类 -  动态规划-单调栈优化

摘要:"84. 柱状图中最大的矩形" 前置 单调栈 做法 连续区间组成的矩形,是看最短的那一块,求出每一块左边第一个小于其高度的位置,右边也同理,此块作为最短限制。需要两次单调栈 单调栈维护递增区间,每次不满足弹出栈顶,顺便利用此栈顶和当前位置计算栈顶能覆盖的长度 用来计算。仅需一次单调栈 阅读全文
posted @ 2019-07-28 23:11 y2823774827y 阅读(562) 评论(0) 推荐(0)
摘要:题目 "HDU 5033 Building " 做法 其实就是维护一个上凸壳 因为下凸时的右端点是不会起到贡献的作用 计算几何要注意的点(还是太弱了,dalao请略过): $atan()$:通过比值计算弧度 $1rad=\frac{180^{o}}{\pi}$ My complete code cp 阅读全文
posted @ 2019-01-17 20:26 y2823774827y 阅读(128) 评论(0) 推荐(0)
摘要:题目 "HDU 1506 Largest Rectangle in a Histogram" 做法 以$a_i$为最高高度,以$i$向左右扩展 找到$i$左边比$a_i$小的最右边的位置 找到$i$有边比$a_i$小的最左边的位置 然而十天后又忘了,来补下笔记: 这里单调栈维护的是一个从顶到底递减的 阅读全文
posted @ 2019-01-17 11:53 y2823774827y 阅读(591) 评论(0) 推荐(0)