恩,刚学了一发可持久化Trie树,其实挺简单的。。 反正可持久化数据结构都一个样嘛,动态加点就好了。 还是写一篇博客给自己看吧。 因为树上的路径嘛,肯定要想到把路径分成两部分,x lca(x,y) 和 y lca(x,y) 。 这就相当与两块区间,然后求单点异或最大值,自然就想到可持久化了呗。(想想 ...
分类:
其他好文 时间:
2018-07-29 13:01:56
阅读次数:
212
学习了一段时间的可持久化数据结构,感觉自己的脑子不太够用。。。。 好吧,先从最基本的看起 可持久化数组 题目链接 你需要维护这样的一个长度为 N 的数组,支持如下几种操作 1.在某个历史版本上修改某一个位置上的值 2.访问某个历史版本上的某一位置的值 此外,每进行一次操作(对于操作2,即为生成一个完 ...
分类:
其他好文 时间:
2018-04-20 14:30:18
阅读次数:
161
An Old but Classic Problem 给定一个$n$个点,$m$条边的带正权有向图。给定$s$和$t$,询问$s$到$t$的所有权和为正路径中,第$k$短的长度。 Notice 定义两条路径不同,当且仅当它们的边集中存在一条边,使得它只在其中的一条路径上。 An Old but Cl ...
分类:
编程语言 时间:
2018-02-10 17:06:42
阅读次数:
185
我们经常会遇到这样的问题:我们需要维护一个数据结构,我们可以修改单一结点的值,查询单一结点的值,但是最关键的是我们可能还需要回退之前做过的某些操作。这里回退是指回到未做这些操作之前的状态。 在无回退操作的情况下,我们有大把的数据结构可供选择来解决这些问题。但是一旦涉及到回退操作,选择就少的多了。我们 ...
分类:
其他好文 时间:
2018-01-21 19:08:55
阅读次数:
118
Kirin:可持久化数据结构可以保留历史版本,用新建代替修改。 "洛谷模板题" 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 1.插入x数 2.删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作) 3.查询x数的排名(排 ...
分类:
其他好文 时间:
2018-01-21 14:49:38
阅读次数:
156
联赛之后记录一下自己的知识点学习情况(按开始时间先后顺序) 可持久化数据结构 [BZOJ 3123]森林 树上主席树 启发式合并 LCA [BZOJ 4826]影魔 区间修改主席树 标记永久化 [BZOJ 2735]世博会 主席树 切比雪夫距离转曼哈顿距离 [BZOJ 3166]Alo 可持久化01 ...
分类:
其他好文 时间:
2017-12-31 12:52:00
阅读次数:
195
可持久化线段树初步理解(单点修改): 当需要同时保留修改前和修改后数据时,可能就要用到可持久化数据结构。考虑线段树的单点修改,实际上只改了一部分节点的值(logn级别),如果重建一棵树,需要nlogn级别的时间和空间。此时,我们可以使用可持久化线段树,将需要被修改的节点建成新的点,并且每次修改给予线 ...
分类:
其他好文 时间:
2017-09-22 23:56:01
阅读次数:
227
最近跑来打数据结构,于是我决定搞一发可持久化,然后发现……一发不可收啊…… 对于可持久化数据结构,其最大的特征是“历史版本查询”,即可以回到某一次修改之前的状态,并继续操作;而这种“历史版本查询”会衍生出其他一些强大的操作。 今天,我们主要讲解可持久化线段树。其实,它的另外一个名字“主席树”似乎更加 ...
分类:
其他好文 时间:
2017-08-02 21:03:44
阅读次数:
190
Problem Kth Number Solution 裸的主席树,模板题。但是求k大的时候需要非常注意,很多容易写错的地方。卡了好久。写到最后还给我来个卡空间。 具体做法参见主席树论文《可持久化数据结构研究》。 AC Code ...
分类:
其他好文 时间:
2017-07-09 10:50:43
阅读次数:
157