2018.8.1可持久化数据结构(汪乐平)

本文探讨了数据结构与算法的高级应用,包括完全可持久化、主席树、线段树合并等技术,并介绍了这些技术在解决特定问题时的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假装有标题

部分可持久化
完全可持久化

函数式实现可持久化:
不修改任何信息,只通过新建实现

主席树

(函数式值域线段树)

题目

T1:BZOJ1901 Dynamic Rankings

外层套一层树状数组
O(logn)个线段树互相加减

T2:BZOJ3196 二逼平衡树

直接树状数组套主席树

线段树合并

合并两棵结构相同的线段树
一般是合并主席树
把n个O(logn)的线段树合并在一起的时间复杂度不超过O(nlogn)

题目

T1:BZOJ2733永无乡

直接主席树合并

T2:Arietta

网络流,考虑线段树优化建图
线段树套线段树是log2log2的,不优
考虑线段树合并
从子树向父亲合并

T3:BZOJ3065带插入区间K小值

平衡树套主席树
但是旋转会导致GG
仍然可以用替罪羊树或treap

可持久化字典树

一般是0/1 Trie
处理位运算较常见

题目

T1:BZOJ2741 L

前缀和一波
分块
f[i][j]表示第i个块开始到第j个元素的答案
转移时需询问固定值与权健内元素异或最大值

T2:BZOJ3217 ALOEXT

重量平衡树套可持久化0/1 trie

可持久化平衡树

普通treap和fhq式treap均可可持久化

题目

T1:超级编辑器

听神仙

可持久化可并堆

二叉堆没什么好可持久化的
有些均摊的堆无法可持久化
比如斐波那契堆不可以可持久化
左偏树可以可持久化

K短路

计算S到T的
(还是见论文吧

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值