随笔分类 -  数据结构--单调栈&&单调队列

摘要:题目链接:https://ac.nowcoder.com/acm/contest/888/A 题意:给n×m的01矩阵,求出其中全为1的矩阵个数(不被其它全1矩阵包括)。 思路:和第二场多校的次大子矩阵类似。二维降一维,遍历行,以第i行为矩阵的底,通过单调栈得到矩阵向左向右能够扩展的范围 l[j]和 阅读全文
posted @ 2019-08-11 09:58 Frank__Chen 阅读(177) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/883/F 题意:给定n×n的矩阵,求最大子矩阵使得子矩阵中最大值和最小值的差值<=M。 思路:先看数据大小,注意题目说所有样例的N^3不超过25e7,意思就是我们可以用O(n^3)过题。 最大子矩阵第二场出现过,做法 阅读全文
posted @ 2019-07-30 21:25 Frank__Chen 阅读(207) 评论(0) 推荐(0)
摘要:题目链接:https://www.luogu.org/problem/P1886#submit 题意:给定n个数,求大小为k的滑动窗口中最小值和最大值。 思路:单调队列模板题。 AC代码: 阅读全文
posted @ 2019-07-30 10:54 Frank__Chen 阅读(225) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/882/H 题目:给n×m的由01组成的矩阵,求次大全1子矩阵的大小。 思路:第一步还是降维操作,用a[i][j]记录以第i行为底的全1直方图的高,如对于矩阵: 其矩阵a为: 之后对于每一行的所有列用单调栈维护每个数左 阅读全文
posted @ 2019-07-21 15:54 Frank__Chen 阅读(239) 评论(0) 推荐(0)
摘要:题目链接:https://ac.nowcoder.com/acm/contest/881/A 题意:给定两个长度均为n的数组a和b,求最大的p使得(a1,ap)和(b1,bp)等价,等价的定义为其任意子区间的最小值下标相等。 思路:用递归思想,假设前k个元素等价,即(a1,ak)和(b1,bk)等价 阅读全文
posted @ 2019-07-19 15:54 Frank__Chen 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/POJ-3250 题意:求序列中每个点右边第一个>=自身的点的下标。 思路:简单介绍单调栈,主要用来求向左/右第一个小于/大于自身的下标,直接求的话复杂度为O(n2),而单调栈只有O(n),利用好单调栈十分有用。一个元素向左遍历的第一个 阅读全文
posted @ 2019-04-28 14:57 Frank__Chen 阅读(949) 评论(0) 推荐(1)