[Notes] 可持久化数据结构学习笔记

可持久化数据结构 就是使数据结构可以返回历史版本

一般的实现方法是新建有修改的点 其他点与上一版本共用 这样做到空间复杂度带上一个或两个log


主席树(可持久化线段树、函数式线段树)


每次新增一条从叶子到根的链 因为有修改

学习参考资料:


MetalSeed主席树介绍


qian99主席树学习笔记


Seter1901: Zju2112 Dynamic Rankings


徐亦轲:主席树


题目练习:


[主席树套堆 区间修改 标记永久化] BZOJ 3489 A simple rmq problem


[树状数组套权值线段树] BZOJ 1901 Zju2112 Dynamic Rankings


[主席树 启发式合并] BZOJ 3123 [Sdoi2013]森林


[主席树] BZOJ 3673 可持久化并查集 by zky BZOJ 3674 可持久化并查集加强版


[主席树 树状数组套权值线段树] BZOJ 1146 [CTSC2008]网络管理Network


[主席树 二分答案] BZOJ 2653 middle



可持久化字典树


类似主席树 每次新增一条从叶子到根的链 实际上字典树就是线段树

题目练习:


[可持久化字典树] BZOJ 3261 最大异或和


[可持久化字典树 分块] BZOJ 2741 【FOTILE模拟赛】L


[可持久化字典树] BZOJ 4546 codechef XRQRS



可持久化平衡树


SBT、Splay以及旋转版Treap等BST都不可以比较方便地实现‘可持久化操作’

选择用非旋转版本的treap

奉上 memphis blog一篇:


非旋转Treap及可持久化[Merge,Split]


题目练习:


UVA 12538 Version Controlled IDE 可持久化treap


可持久化块状链表


有的时候复杂度较其他会更优 参考丽洁姐的pdf


可持久化并查集


实际上就是维护一个可持久化的数组

用可持久化线段树 或 可持久化平衡树做

详见bz上zky的题


3674: 可持久化并查集加强版



参考资料


Persistent Data Structures(可持久化的数据结构)


可持久化数据结构研究 CLJ



范浩强_wc2012谈谈各种数据结构




  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值