
可持久化线段树
文章平均质量分 54
yqcr
这个作者很懒,什么都没留下…
展开
-
可持久化并查集 (可持久化数组+并查集)
题目链接 可持久化数组相关链接 利用可持久化数组进行维护每个节点的父亲节点,对于题目中给出的三种操作: 第一种操作即将a所在集合的根节点的父亲节点赋值为b所在集合的根节点,直接在可持久化数组上进行单点修改操作。 第二种操作直接将当前版本号赋值为第k次修改的版本号。 第三种操作,直接查询两点所在集合的根节点是否相同即可,不过在可持久化数组中不支持路径压缩,所以我们只能直接递归查找当前节点的父节点,直到找到该集合的根节点,无疑直接这样查找很容易超时,所以我们可以考虑在进行合并操作的时候采用按秩合并,将深度小的集原创 2021-07-01 10:38:38 · 251 阅读 · 0 评论 -
可持久化线段树(主席树)相关模板题
一、可持久化数组: 题目链接 个人感觉可持久化数据结构的精髓就在于最大限度的使用以前的资源也就是最小的增加新的资源。对于这道题我们可以将原始数组用一个普通线段树来存,当我们需要修改的时候只需要将需要修改的元素在线段树中所在的链修改即可,其他的都可以使用原来的数据。 借用别人的图分析一下: 这是原始数据构成的线段树,一共有六个数据。 假如我们需要在此基础上修改第二个元素: 可以看出橙色部分即为我们需要修改的部分 这就是修改了第二个元素以后的可持久化数组的样子,绿色为修改第二个节点后的线段树版本,在修改的原创 2021-06-29 17:46:35 · 260 阅读 · 0 评论