====单调队列&单调栈
DenyTian
做最好的自己
展开
-
BZOJ1007 [HNOI2008]水平可见直线 【单调栈】【凸壳】
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1007 题意:有一些一次函数,求他们上凸壳包含哪些一次函数,升序输出序号 题解: 本来是要做十连测的一道题的结果发现不会求凸壳于是(在群内dalao的怂恿下)开了这道题。 一开始我并不知道凸壳是啥,推荐一篇好文章:https://www.luogu.org/blog/LittleR...原创 2018-09-02 19:49:45 · 220 阅读 · 0 评论 -
POJ 2559 Largest Rectangle in a Histogram 【栈】
题目链接:http://poj.org/problem?id=2559题意:有许多矩形,求其中连成最大矩形的面积。题解: 这题真坑。 记 l[i] r[i] 为 以 i 为高度的建筑可以向左向右延展最长到哪里。用栈维护,上一次所在的位置,如果栈顶元素所在建筑的高度 大于当前建筑高度,就延展。但这样还是会被卡T,注意到相邻建筑只有连续两个,可以把 >= 抽成 > ,然后用一个 if 单独判断 ==原创 2017-09-23 20:41:56 · 161 阅读 · 0 评论 -
POJ 2823 Sliding Window 【单调队列】
题目链接:http://poj.org/problem?id=2823题意:滚动一个长度为k的窗口,问每次露出来数的最值。题解: 这道题显然可以用线段树来做。 动态维护一棵线段树来求区间最值是它所擅长的。 但我们还有更好的方法,那就是单调队列。 维护一个单调队列,每次记录一下该数所对应的下标 i ,如果前面的元素下标 超过了最后元素下标 k,那么就从顶端 pop(pop_front)。这个操原创 2017-09-16 21:48:16 · 223 阅读 · 0 评论