主席树

2 篇文章 0 订阅
2 篇文章 0 订阅

主席树:可持久化线段树。

可持久化线段树:保存历史记录的线段树。

来源:某大神考场上不会打某数据结构而发明的 Orz

如果更新某线段树要记录它的历史记录,最暴力的方法就是新开一棵线段树。

时间空间明显都很大。

我们发现:每次修改,线段树都只用修改某条路径上 log2n 个点,如果新开线段树全都再搞一遍太不划算了。

那我们可以试着只修改要修改的那条路径。

以线段树经典用法求区间最大为例,如图:

将区间 [1,2,3,4] 中的 1 改为5

主席树

要修改的点重开一个空间,不用修改的直接连回原来位置就好啦。

可持久化线段树拥有了很多普通线段树不具有的特殊性质,所以也有了很多妙用。

例题:BZOJ2809 (这里题解)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值