可持久化简述

  • 可持久化数据结构通常有

    • Tire 字典树
    • 可持久化线段树, 又称主席树。
  • 一个数据结构可以被可持久化的前提是

    • 本身的拓扑结构不会随着修改改变, 只会修改数值
  • 可持久化的目的是

    • 存储所有修改的版本, 类似于 Git, 存放数据结构的历史版本
  • 可持久化的核心思想是

    • 只记录当前版本和上一版本的区别

Tire 字典树的可持久化

最基本的 Tire 树:插入 cat, rat, cab, try image.png

共插入了四个数据, 故会保存四个版本, 新版本只会存新加的, 旧的节点直接通过指针指代到上一个版本。 image.png

插入操作

p = root[idx] 为上一个版本的指针, q = root[++idx] 为新版本的指针

  1. 若 p 指向非空节点, 则需要将上一个版本的内容克隆到新版本上 tr[q] = tr[p]
  2. 若 当前要新插入 , 则在 版本中新建节点
  3. 更新指针到下一个位置

题目

题目简介
最大异或和