"嘟嘟嘟" 最近复习复习平衡树,然后又体会到了那种感觉:“写代码半小时,debug一下午”。 这题其实就是让你搞一个数据结构,支持一下操作: 1.区间翻转。 2.查询区间最小值所在位置。 刚开始我想错了,想直接维护点权最小的点所在位置,但是这样旋转的时候就彻底的乱了,不知咋维护。 后来有一个不错的主 ...
分类:
编程语言 时间:
2019-01-22 20:41:02
阅读次数:
184
万事开头难,开始做就会比不做会的多. 爆零真的不开心. BST,Binary Search Tree,二叉搜索树.它可以做一个类似字典树,支持插入某个键值,询问某个键值的权值,删去某个键值.也可以做一个类似于优先队列的东西,查询区间最大值,区间最小值,一个键值v的前驱(小于v的最大的键值)后继(大于 ...
分类:
其他好文 时间:
2019-01-17 19:51:03
阅读次数:
165
"传送门" 考虑用 $segment~tree~beats$ 那一套理论,维护区间最小值 $mn$ 和严格次小值 $se$ 那么可以直接 $mlog^2n$ 维护前三个操作 考虑维护历史最小值,先维护历史最小标记 写了写发现 $max$ 那个修改不好操作 对于 $max$ 操作来说,只会在 $mn ...
分类:
其他好文 时间:
2019-01-10 19:32:02
阅读次数:
165
题意:区间mex 题解:主席树维护,按权值插入,维护区间最小值,第x颗线段树,区间l,r表示l到r在1到x出现最后的最早一个是哪个位置 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optimize(4) // p ...
分类:
其他好文 时间:
2018-12-15 15:43:13
阅读次数:
170
题目描述 题解: 好神啊 建出后缀自动机,然后处理每个点parent树子树中endpos的数量,若为1即可成为识别子串。 对于每个点维护原串所在位置以及right的最小值mn。 然后套上线段树维护区间最小值。 基本就这样了。 代码: ...
分类:
其他好文 时间:
2018-12-11 19:55:27
阅读次数:
289
bzoj 题解: 后缀数组+RMQ 有一个性质是,若出现ABA形式,且|A|比较大|B|<=m,那么真正的B块端点可以来回滑动。 因此我们可以正反做两遍后缀数组,利用RMQ求出区间最小值即前缀长。 然后先枚举|A|,再枚举左边A的端点,这样ABA位置大体确定。 然后在两个左端点处分别向两端延伸,更新 ...
分类:
其他好文 时间:
2018-12-09 20:02:36
阅读次数:
207
传送门 小水题吧 二分能处理到的询问即可 用差分维护前x个订单之后的值 最后求一遍前缀和 如果爆负就是有不满足的 复杂度O((m+n)lgm) 或者区间加和区间最小值线段树也行(常数略大) Code:(线段树) ...
分类:
其他好文 时间:
2018-11-08 14:22:31
阅读次数:
156
https://www.zybuluo.com/ysner/note/1332539 题面 [戳我][1] 解析 一道挺棒棒的线段树。 显然一次伤害到来时我们要先看看区间内哪些点的护甲没了。 这个可以通过维护区间最小值(维护护甲的剩余承受能力)来完成。 如果发现区间最小值小于等于当前伤害,就去暴力找 ...
分类:
其他好文 时间:
2018-11-05 00:40:14
阅读次数:
134
有一类关于区间最大值和最小值之类的问题,利用单调性,可以采用分治算法解决。 SPOJ22343 Norma 题意,给定一个数列,定义区间的代价为区间最大值、区间最小值、区间长度的成绩,求所有区间的代价和。 既然是分治,我们肯定要处理一个数列跨过中点的答案。 假设当前数列的中点为mid,我们从mid往 ...
分类:
其他好文 时间:
2018-10-31 10:37:43
阅读次数:
134
数据结构:树状数组,堆节点和左右儿子合并的线段树 树状数组:快速求前缀和,单点修改删东西,加东西,查询最小值,最大值lowbit(4)=4每个位置存一段区间的和二维树状数组???n*m的空间 线段树,动态开节点序列核心:区间可合并性借教室:区间减法,求区间最小值线段树一定可以1e5 ,维护少,域小可 ...
分类:
其他好文 时间:
2018-10-04 18:58:53
阅读次数:
178