
单调栈/单调队列
文章平均质量分 70
ccDLlyy
不忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 2823 Sliding Window(单调队列)
题目链接:思路:单调队列入门题目原创 2017-09-16 13:54:32 · 467 阅读 · 0 评论 -
单调队列
单调队列指的是队列中的所有元素是单调递增或者单调递减的。它可以在队首或队尾删除元素,只能在队尾插入元素,维护队列的均摊时间复杂度为O(1)。单调队列一般用于解决的问题如,用一个长度为k的框在所给序列上移动,求框里面所包含的元素的最大值。以单调递减队列为例:队尾插入元素:为了保证队列的递减性,在插入元素num的时候,要将队尾元素和num比较,如果队尾元素不大于num,则删除队尾元原创 2017-09-16 14:25:07 · 476 阅读 · 0 评论 -
POJ 2559 Largest Rectangle in a Histogram(单调栈)
题目链接:点击打开链接题意:从左到右排列有多个矩形,这些矩形的宽度都为1,长度不等。选择连续的一至多个矩形,使得到的面积最大,但不能超出原有矩形的范围。思路:单调栈入门题目,维护一个由栈顶到栈底单调递减(指矩阵高度)的矩阵序列。新矩阵入栈时,若高度大于栈顶矩阵的高度,直接入栈;否则,先更新栈内矩阵,再入栈,具体更新过程为:先取栈顶元素,然后每次从栈顶取一个矩阵,与之前的矩阵进行合并,更新合原创 2017-09-19 09:37:53 · 546 阅读 · 0 评论 -
单调栈
单调栈和单调队列一样,都是维护一个单调序列。单调栈性质:(1)后进先出(2)只在栈顶进行入栈、出栈操作(3)单调性指的是从栈顶元素到栈底元素符合严格的单调递增或者单调递减。具体进栈过程的本质是:维护单调性。以单调递减栈为例,若当前进栈元素为u,从栈顶开始遍历,大于等于u的元素出栈,直到栈顶元素小于u或者栈为空,然后u入栈。例子:进栈元素分别为原创 2017-09-19 10:21:44 · 606 阅读 · 0 评论 -
HDU 3401 Trade(用单调队列优化DP)
题目链接:点击打开链接题意:给出T天内,每天的股票买卖价格和每天的股票买卖最大数量,而且每天最多只能拥有maxP数量的股票,开始时有无限本金,任意两次交易需要间隔W天及以上,也就是第i天交易,第i+w+1天及以后才能再交易。问最多能赚多少钱?思路:很明显的DP问题,用dp[i][j]表示第i天拥有j数量股票时的最多赚钱数。容易得到状态转移方程:(1)当天不买不卖:dp[i][j原创 2017-09-19 19:43:31 · 526 阅读 · 0 评论