单调栈&单调队列
文章平均质量分 69
Falling~
这个作者很懒,什么都没留下…
展开
-
单调栈--poj3494 Largest Submatrix of All 1’s
给定01矩阵,求其中都为1的矩阵的最大面积。想法很奇妙,先求每一行向上最多可以延伸多少,在对每一行对非0区域,用单调栈求区间最小值*区间长度,即为面积。#include #include #include #include using namespacestd;const int maxn =2000 + 5;in转载 2017-08-25 14:21:34 · 364 阅读 · 0 评论 -
单调栈--poj3250 Bad Hair Day
有一列奶牛,大家都向右看,每只牛可以看到在他右侧的奶牛的头,设第i只奶牛可以看到ci只,求ci的和。单调(递减)栈,记录每只奶牛右侧有几只比他矮。//递减栈区间最大值//1.ans可能到long long = maxn^2 / 2//2.题目要求严格递减#include #include #include using namesp原创 2017-08-25 15:28:45 · 311 阅读 · 0 评论 -
单调栈--poj2559 Largest rectangle in a Histogram
一个直方图里,求最大的矩形。类似2 1 4 5 1 3 3解释见 http://blog.csdn.net/alongela/article/details/8230739#include #include #include #include using namespacestd;const int maxn =100000 + 5;原创 2017-07-26 10:19:42 · 291 阅读 · 0 评论 -
单调栈总结
单调栈一般可以对于给定的数列,求每个值v在他左右的区间[l,r]是最小值(最大值),通过单调递增(递减)栈来实现。1.用处求每个值v是哪个区间[l,r]的最小值,一般还会和区间[l,r]有关系poj2796 Feel good 给定数列 要求一个区间内最小值乘区间和,的最大值。poj2559 Largest rectangle in a Histogram 给定几个原创 2017-08-25 16:57:37 · 248 阅读 · 0 评论 -
单调栈--poj2796 Feel good
给定数列,求一个区间内最小值乘区间和,的最大值。ps:1.最大值可能是02.前缀和也是long long3.手写栈#include #include #include #include using namespacestd;const int maxn =1e5 + 5;typedef longlong原创 2017-08-24 10:28:13 · 385 阅读 · 0 评论 -
单调队列--poj2823 Sliding Window
n个元素的数组,大小为k的窗口。求窗口右滑时,窗口中的最大最小值。#include #include #include #include using namespacestd;struct pr{ int num,pos;};int n,k;dequepr> dq1,dq2;//需原创 2017-10-08 20:50:15 · 218 阅读 · 0 评论 -
单调队列--fzu1894 志愿者选拔
1C NAME RP_VALUE名字为NAME的人品值为RP_VALUE的同学加入面试队伍。(名字长度不大于5,0 2G排在面试队伍最前面的同学面试结束离开考场。3Q主面试官John想知道当前正在接受面试的队伍中人品最高的值是多少。#include #include using namespacestd;转载 2017-10-08 20:55:26 · 348 阅读 · 0 评论