单调栈
tomjobs
别慌,慌也没用
展开
-
2021年度训练联盟热身训练赛第一场 E. Early Orders(单调栈)
题意:求一个字典序最小的子序列,包含1~k所有数恰好一次。思路:类似单调栈,用一个栈记录以及选的数字。只要当前的数a[i]a[i]a[i]没在栈中,且比栈底的数小,并且栈底之后还出现,就出栈。bitsetbitsetbitset写法,参考了别人代码#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <set>#incl.原创 2021-03-11 10:09:41 · 174 阅读 · 0 评论 -
LeetCode 907. 子数组的最小值之和(单调栈)
给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。由于答案可能很大,因此 返回答案模 10^9 + 7 。示例 1:输入:arr = [3,1,2,4]输出:17解释:子数组为 [3],[1],[2],[4],[3,1],[1,2],[2,4],[3,1,2],[1,2,4],[3,1,2,4]。最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。示例 2:输入:arr = [11,81,94,43,3]输出:444提示:原创 2021-02-02 15:16:26 · 266 阅读 · 0 评论 -
Codeforces1407 D. Discrete Centrifugal Jumps(单调栈+DP)
There are ???? beautiful skyscrapers in New York, the height of the ????-th one is ℎ????. Today some villains have set on fire first ????−1 of them, and now the only safety building is ????-th skyscraper.Let’s call a jump from ????-th skyscraper to ????-t原创 2020-09-09 08:19:28 · 362 阅读 · 0 评论 -
牛客 最大最小(单调栈,区间最大大于最小两倍)
思路:首先必须明确单调栈的最主要的作用,就是找到每个数左边右边第一个小于大于他的数,如果配上倍增或者二分可以找到小于大于他的第k大数。所有用单调栈的题目都得思考怎么利用这个性质来套题目。对于本题,我们可以找到每个数右边第一个大于等于其两倍的数R2[i]R2[i]R2[i],小于等于其一半的数R3[i]R3[i]R3[i]。可以找到以每个数为左端点的可行区间的数目,也就是n−1−max(R2[i],R3[i])+1n-1-max(R2[i],R3[i])+1n−1−max(R2[i],R3[i])+.原创 2020-08-14 10:52:26 · 361 阅读 · 0 评论 -
Codeforces1382 D. Unmerge(DP,单调栈)
Let ???? and ???? be two arrays of lengths ???? and ????, respectively, with no elements in common. We can define a new array merge(????,????) of length ????+???? recursively as follows:If one of the arrays is empty, the result is the other array. That is原创 2020-07-22 11:06:07 · 288 阅读 · 0 评论 -
ICPC NEAU Programming Contest 2020 D 旅游(单调栈)
思路:你只要把每个数为起点的上升子序列抽出来(能抽则抽),那么此时要求第几大都可以求出来。这个过程直接用单调栈维护。不过也可以使用倍增,定义f[i][j]f[i][j]f[i][j]代表以第iii个数为起点的第i+2j−1i+2^j-1i+2j−1大的数是什么,结合单调栈可以直接求出来,在在线的情况下只能使用这种方法。#include <cstdio>#include <cstring>#include <algorithm>#include <vec.原创 2020-06-07 15:07:11 · 325 阅读 · 1 评论 -
G. Gentle Jena(单调栈) 2020 年 “联想杯”全国高校程序设计在线邀请赛暨第三届上海理工大学程序设计竞赛
题意:给出b[i]的计算公式,第i回合加上b[i]这个数,第i回合的结果为所有区间最小值的和。求所有回合结果的异或值。思路:维护一个递增的单调栈,保证弹出的数都比b[i]大,那么这些数在包含b[i]的区间里面都不会被计算到。单调栈里面维护这个数的值,以这个数为右端点的区间最小值和,下标。#include <ctime>#include <iostream>#include <assert.h>#include <vector>#inclu..原创 2020-05-31 00:36:48 · 314 阅读 · 0 评论 -
leetcode 85. 最大矩形(单调栈)
给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出: 6通过次数19,284提交次数43,367思路:定义数组up[i][j]up[i][j]u...原创 2020-03-06 14:55:19 · 179 阅读 · 0 评论 -
P2947 [USACO09MAR]向右看齐Look Up(单调栈)
题目描述Farmer John’s N (1 <= N <= 100,000) cows, conveniently numbered 1…N, are once again standing in a row. Cow i has height H_i (1 <= H_i <= 1,000,000).Each cow is looking to her left to...原创 2020-01-19 20:50:57 · 223 阅读 · 0 评论 -
洛谷P1901 发射站(单调栈)
某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发射站接收。显然,每个发射站发来的能量有可能被 0 或 1 或 2 个其他发射站所接受,特别是为了安 全,每个发射站接收到的能量总和是我们很关心的问题。由于数据很多,现只需要你帮忙计 算出接收最多能量的发射站接收的能...原创 2020-01-19 20:36:51 · 236 阅读 · 0 评论 -
2019银川区域赛 K题 Largest Common Submatrix(二维单调栈,最大公共子矩阵)
You are given two n \times mn×m matrices, and the elements of each matrix are ranged from 11 to n \times mn×m and pairwise distinct. You need to find the common submatrix with the largest size between...原创 2020-01-19 00:17:29 · 621 阅读 · 0 评论 -
hdu2870 Largest Submatrix AcWing 333. 最大子矩阵(单调栈 悬线dp)
给定一个由字母’a’,’b’,’c’,’w’,’x’,’y’,’z’构成的矩阵,你可以将’w’改为’a’或’b’, 将’x’更改为’b’或’c’,将’y’更改为’a’或’c’,将’z’更改为’a’,’b’或’c’。请你求出通过更改矩阵,可以得到的由相同字母构成的最大子矩阵。输入格式输入包含多组测试数据。每组测试数据第一行包含两个整数m和n,分别表示矩阵的行和列。接下来 m 行,每行包含n...原创 2019-10-28 18:59:21 · 291 阅读 · 0 评论 -
BZOJ3039. 玉蟾宫(悬线dp 单调栈)
Description有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。这片土地被分成N*M个格子,每个格子里写着’R’或者’F’,R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着’F’并且面积最大。但是rainbow和fre...原创 2019-10-04 01:52:30 · 246 阅读 · 0 评论 -
P1823 [COI2007] Patrik 音乐会的等待(单调栈)
题目描述N个人正在排队进入一个音乐会。人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人。队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的。写一个程序计算出有多少对人可以互相看见。输入格式输入的第一行包含一个整数N (1 ≤ N ≤ 500 000), 表示队伍中共有N个人。接下来的N行中,每行包含一个整数,表示人的高度,以毫微米(...原创 2019-10-22 21:28:18 · 540 阅读 · 1 评论 -
Largest Rectangle in a Histogram POJ - 2559(直方图最大面积,单调栈)
直方图中最大的矩形题目提交记录讨论题解视频讲解直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1:2559_1.jpg通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显...原创 2019-08-19 22:21:19 · 301 阅读 · 0 评论 -
D - Mike and Feet CodeForces - 548D(单调栈)
Mike is the president of country What-The-Fatherland. There are n bears living in this country besides Mike. All of them are standing in a line and they are numbered from 1 to n from left to right. i-...原创 2019-03-28 00:08:43 · 285 阅读 · 0 评论