
单调栈
__wwwwn
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj2796Feel Good 前缀和+单调栈经典例题
题意:求区间最小值乘区间和的最大值 题解:单调栈求左右边界,然后前缀和 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e5+5, INF = 0x3f3f3f3f; #define mod int(1e9+7) #define pi acos(-1.0) ...原创 2019-07-19 16:41:43 · 465 阅读 · 0 评论 -
Largest Rectangle in a Histogram HDU - 1506 动态规划
题意:求最大矩形面积 题解:动态规划,翻译一下就是如果当前点的左边界的值比当前点的值大的话,那么左边的点的左边界也是他的左边界,如此循环下去,就o(n)求出来了当前点的左边界,右边界同理(感觉时间复杂度比o(n)要大。。。) 这个单调栈也能求左右边界,有空想起来的话会补上(补这题主要是想学学非单调栈求法) #include <bits/stdc++.h> using names...原创 2019-07-20 22:03:06 · 212 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场)C 单调栈&&线段树
题意: 题解:l和r我用dp求得,跟单调栈思路差不多,但是好写 这里有两个问题 1.我一开始用rmq的stp表查询最值,结果这种用空间换时间的做法mle了,因为维数有25维,正好被卡掉了 后来只能用线段树查询最值 2.为了让b[i]包括在区间内,我查询的区间并不是跟题解上一样的,我查的区间是l-1....i-1和i....r,然后这样会出现一个问题,一个是 l==i时查询就会出问题,第...原创 2019-07-28 20:12:07 · 231 阅读 · 0 评论 -
2019牛客暑期多校训练营(第八场)A All-one Matrices 动态规划
题意:问你全是1的子矩阵有多少个,要求不重复也不被包含 题解:跟上次的次大子矩阵差不多,都是利用单调栈或动态规划求左右边界解决问题,但这次问题有点变动,因为要去重。 首先对于每个点都有一个左右边界,那么同一行的左右边界相同的一定是相同的矩阵,这里我用的set去重 同一列左右边界相同的是子矩阵,只需要判一下与相邻的下一行,如果一样也得去掉 #include <bits/stdc++....原创 2019-08-11 15:04:17 · 168 阅读 · 0 评论