
单调栈
olahiuj
我的女朋友不抽烟不喝酒不傲娇不化妆不存在
展开
-
bzoj1345 [Baltic2007]序列问题Sequence 单调栈
Description对于一个给定的序列a1, …, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列。这一操作的代价是max(ai,ai+1)。进行n-1次该操作后,可以得到一个长度为1的序列。我们的任务是计算代价最小的reduce操作步骤,将给定的序列变成长度为1的序列。1 0原创 2018-01-17 11:41:46 · 220 阅读 · 0 评论 -
CF1142C U2 单调栈
Description已知两个x坐标不同的点可以确定一个二次项系数为1的二次函数。现在给出n个点,问n^2个二次函数中有多少个图像不包含任何给出的关键点n≤105n\le10^5n≤105Solutiony=x2+bx+c,我们移项得到y-x2=bx+c,令y=y-x^2,那么就变成若干条直线求一个凸壳当然直接做也可以,原理和上面是一样的Code#include <st...原创 2019-04-07 14:32:59 · 296 阅读 · 0 评论 -
bzoj2957 楼房重建 线段树
Description小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)...原创 2018-11-22 20:37:17 · 154 阅读 · 0 评论 -
bzoj2086 [Poi2010]Blocks 单调栈
Description给出N个正整数a[1…N],再给出一个正整数k,现在可以进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1。经过一定次数的操作后,问最大能够选出多长的一个连续子序列,使得这个子序列的每个数都不小于k。总共给出M次询问,每次询问给出的k不同,你需要分别回答。第一行两个正整数N (N <= 1,000,0...原创 2018-11-04 22:05:47 · 204 阅读 · 0 评论 -
bzoj4750 密码安全 单调栈
Description有些人在社交网络中使用过许多的密码,我们通过将各种形式的信息转化为 01 信号,再转化为整数,可以将这个人在一段时间内使用过的密码视为一个长度为 n 的非负整数序列 A_1,A_2,…,A_n 。一个人相邻几次在社交网络中使用的密码很有可能是类似的,这使得密码并不是足够安全。为了检验某些人在某些时间段内是否可能受到不安全的影响,我们需要计算上述序列的复杂程度的值,这将作...原创 2018-10-09 09:59:44 · 200 阅读 · 0 评论 -
cf875D High Cry 单调栈+倍增
Description给你一个长度为 n 的数列 ai,求满足区间或 > 区间最大值的区间个数。Disclaimer: there are lots of untranslateable puns in the Russian version of the statement, so there is one more reason for you to learn Russian ...原创 2018-09-25 21:37:03 · 307 阅读 · 0 评论 -
bzoj4237 稻草人 CDQ分治+单调栈+二分
DescriptionJOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典。 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地。和启示中的一样,田地需要满足以下条件: 田地的形状是边平行于坐标轴的长方形; 左下角和右上角各有一个稻草人; 田地的内部(不包括边界)没有稻草人。 给出每个稻草人的坐标,请你求出有多少遵从启示的田地的个数...原创 2018-09-13 20:00:37 · 213 阅读 · 0 评论 -
bzoj5380 Function 单调栈维护凸壳+二分
DescriptionSolution改了一天搞出来了(哭泣脸 翘掉了数据结构讲课,自我感觉良好一个结论就是,最优答案一定是一条先向左上↖若干步再向上到顶↑的一条路径 考虑枚举从哪一列开始向上到顶,设为i,那么此时对于起点(x,y)答案就是a[i]⋅(x−y)+a[i]⋅i−sum[i]+sum[y]a[i]⋅(x−y)+a[i]⋅i−sum[i]+sum[y]a[i]...原创 2018-08-09 15:21:38 · 575 阅读 · 0 评论 -
bzoj1127 [POI2008]KUP
Description给一个n*n的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于[k,2k]n<2000 1<=k<=10^9 每个价格都是不大于2*10^9的非负整数Solution容易想到先把>2k的格子排除 显然那些本来就满足的单个格子可以直接输出 那么剩下的就是< k的格子了,相当于从01矩阵中找一个满足和&g...原创 2018-03-06 21:42:18 · 256 阅读 · 0 评论 -
uoj#213 [UNR #1]争夺圣杯 单调栈+差分
Description给一个长度为n的序列,定义一个区间的权值为区间内最大值。记ans[i]表示长度为i的所有区间权值之和膜998244353问ans的异或和n≤1e6n\le1e6n≤1e6Solution考虑求出元素i作为最大值的区间[L[i],R[i]],记左右区间中较短的为mn,较长的为mx。我们讨论一下对于各个长度的区间这个位置的贡献是啥当x<=mn时,区间至少要包...原创 2019-04-16 20:45:56 · 278 阅读 · 0 评论