单调栈&单调队列
文章平均质量分 69
Falling~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单调栈--poj3494 Largest Submatrix of All 1’s
给定01矩阵,求其中都为1的矩阵的最大面积。 想法很奇妙,先求每一行向上最多可以延伸多少,在对每一行对非0区域,用单调栈求区间最小值*区间长度,即为面积。 #include #include #include #include using namespace std; const int maxn = 2000 + 5; in转载 2017-08-25 14:21:34 · 449 阅读 · 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 · 462 阅读 · 0 评论 -
单调栈--poj2559 Largest rectangle in a Histogram
一个直方图里,求最大的矩形。类似2 1 4 5 1 3 3 解释见 http://blog.youkuaiyun.com/alongela/article/details/8230739 #include #include #include #include using namespace std; const int maxn = 100000 + 5;原创 2017-07-26 10:19:42 · 378 阅读 · 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 · 322 阅读 · 0 评论 -
单调栈--poj2796 Feel good
给定数列,求一个区间内最小值乘区间和,的最大值。 ps:1.最大值可能是0 2.前缀和也是long long 3.手写栈 #include #include #include #include using namespace std; const int maxn = 1e5 + 5; typedef long long原创 2017-08-24 10:28:13 · 484 阅读 · 0 评论 -
单调队列--poj2823 Sliding Window
n个元素的数组,大小为k的窗口。 求窗口右滑时,窗口中的最大最小值。 #include #include #include #include using namespace std; struct pr{ int num,pos; }; int n,k; dequepr> dq1,dq2;//需原创 2017-10-08 20:50:15 · 283 阅读 · 0 评论 -
单调队列--fzu1894 志愿者选拔
1 C NAME RP_VALUE 名字为NAME的人品值为RP_VALUE的同学加入面试队伍。(名字长度不大于5,0 2 G 排在面试队伍最前面的同学面试结束离开考场。 3 Q 主面试官John想知道当前正在接受面试的队伍中人品最高的值是多少。 #include #include using namespace std;转载 2017-10-08 20:55:26 · 418 阅读 · 0 评论
分享