
单调栈
小菜鸡啦啦啦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
求极大全1矩形个数
题意:求极大全1矩形个数题解:用up[i][j]表示其向上连续1的个数。i枚举矩形的下边界,从前往后枚举每一列,用一个单调递增的栈维护up值,对于栈中的每个up值,都记录以它为最小值,最远的扩展到的左右边界。左边界是遍历到它时,如果有栈元素出栈,就是栈元素的左边界,否则就是它自己。右边界就是当遍历到某个元素j,栈顶元素要出栈时,右边界就是j-1。这样上下左都是不可扩展的,再看看它能否往下扩展,即...原创 2020-01-05 23:20:29 · 206 阅读 · 0 评论 -
全1第二大矩形
题意:给你一个只包含0和1的n×m大小的矩阵,问你第二大的全为1的矩形有多大。(不严格第二大)题解:每个矩阵的大小由长和宽决定,矩形的长对应原矩阵中每一行最多有多少个元素,他们向上扩展的连续“1”的数量一样,矩形的宽对应向上扩展的连续“1”的数量。我们从第一行开始枚举,一开始先更新该行所有元素向上扩展最多有多少个连续“1”,设为c[j]数组,然后用一个单调递增的栈维护该行的c[j]数组,找出该行...原创 2020-01-05 23:11:35 · 143 阅读 · 0 评论 -
19牛客(1)
题意:两个数组定义为相等的,当且仅当从两个数组中任选一个区间[l,r],他们的最小值的下标是一样的,给你两个数组u和v,问你最大的下标p,使得1到p中任选一个区间,他们的最小值下标是一样的。证明:假设遍历到第i个元素,也就是前i-1个元素都是符合条件的,那么我们需要考虑的新区间就是以第i个元素为右端点的所有区间,现在我们考虑以第i个元素为最小值的区间最左能延伸到哪里,如果两个数组最左能延伸到的位...原创 2020-01-05 23:09:56 · 116 阅读 · 0 评论 -
入门
单调栈的性质:(1):栈中元素是单调递增或单调递减的(2):后进先出应用:求某一元素左(右)边第一个比它大(小)的值。DescriptionBill is developing a new mathematical theory for human emotions. His recent investigations are dedicated to studying how good...原创 2019-05-25 14:00:54 · 216 阅读 · 0 评论