题目链接:Educational Codeforces Round 23 D. Imbalanced Array 题意: 给你n个数,定义一个区间的不平衡因子为该区间最大值-最小值。 然后问你这n个数所有的区间的不平衡因子和 题解: 对每一个数算贡献,a[i]的贡献为 当a[i]为最大值时的 a[i ...
分类:
其他好文 时间:
2017-06-20 22:21:40
阅读次数:
226
线段树大法好,直接查后面L个数的最大值。 其实既然是查后面L个数,那直接倍增就行了,倍增天生支持末尾插入。 f[i][j]表示[i,i+2^j-1]的最大值。 网上最多的应该是单调栈+二分的做法,和倍增一样非常好写。 如果一个数,它后面出现一个比它大的数,那么这个数就没有意义了。于是维护一个从栈顶到 ...
分类:
其他好文 时间:
2017-06-14 14:20:54
阅读次数:
164
维护一个单调递减的栈 每次家进栈首的牛必然能够被其它栈里面的牛看到 #include <cstdio> #include <cstring> using namespace std; const int maxn = 80010; typedef unsigned long long LL; int ...
分类:
其他好文 时间:
2017-06-04 10:52:27
阅读次数:
363
Description A substring of a string T is defined as: T( i, k)= TiTi+1... Ti+k-1, 1≤ i≤ i+k-1≤| T|. Given two strings A, B and one integer K, we define ...
分类:
编程语言 时间:
2017-06-03 13:53:40
阅读次数:
249
考虑每个值作为最大值的区间实际上可以用单调栈求出来,即找到左边第一个比它大的数l[i],右边第一个比它大的r[i],那就是左端点在[l[i],i]右端点在[i,r[i]]的区间是以第i个数作为最大值。 这样的话可以看成二维平面上一个矩形区域,每个矩形区域有着一样的最大值,如果我们把最大值相同的矩形放 ...
分类:
其他好文 时间:
2017-05-29 21:07:23
阅读次数:
415
一、概念: 单调栈的本质还是一个栈,只不过是栈的元素从栈底到栈顶单调递增或者是单调递减。 二、单调栈的维护: 每加入一个元素,将这个元素和栈顶元素相比较,(假设你维护的是一个单调递增的栈),如果当前元素大于等于栈顶元素,说明这个元素 没有破坏这个栈的单调性,直接加入;如果当前元素小于栈顶元素,直接向 ...
分类:
其他好文 时间:
2017-05-27 20:01:51
阅读次数:
157
下午还没有收到爱奇艺的决赛通知,猜着也过不了的。。 省赛晚上打的复赛。 第一题是搜索吧?写不好,最后发现居然是定义了多个变量,导致搜索边界出了问题 第二题单调栈?肉眼可见,但是就是写不对!只过了80个点 第三题甚至都没看,,,脑子就死卡前两题,然后GG。和省赛一样。 究其原因 当时状态不好,脑子都不 ...
分类:
其他好文 时间:
2017-05-25 16:19:35
阅读次数:
228
好吧,神奇的题目。。 原题传送门 这道题目,神奇的字符单调栈。。 首先预处理出1~n个数(大家都会。) 然后塞进字符串里,输出答案(水~) 然后。。 我们需要将所有的字符存入单调栈中,然后乱搞,就可以输出啦。 不过注意:有的题目可能在单调栈中没有把所有的字符删完,即后面的所有字符都一样,那么此时我们 ...
分类:
其他好文 时间:
2017-05-24 22:41:47
阅读次数:
222
传送门 单调栈大水题 l[i] 表示 i 能扩展到的左边 r[i] 表示 i 能扩展到的右边 ——代码 1 #include <cstdio> 2 #include <iostream> 3 #define LL long long 4 5 const int MAXN = 2000002; 6 i ...
分类:
其他好文 时间:
2017-05-24 21:07:19
阅读次数:
129
【BZOJ3190】[JLOI2013]赛车 Description 这里有一辆赛车比赛正在进行,赛场上一共有N辆车,分别称为个g1,g2……gn。赛道是一条无限长的直线。最初,gi位于距离起跑线前进ki的位置。比赛开始后,车辆gi将会以vi单位每秒的恒定速度行驶。在这个比赛过程中,如果一辆赛车曾经 ...
分类:
其他好文 时间:
2017-05-22 17:46:15
阅读次数:
175