P3835 【模板】可持久化平衡树

好久没有打平衡树了,赶紧来复习一下,平衡树这种东西还是很有用的,可以很灵活地解决一些问题。

fhq_treap
这道题是可持久化的权值平衡树,支持以下几个操作
1、 插入 xxx

2、 删除 xxx(若有多个相同的数,应只删除一个,如果没有请忽略该操作)

3、 查询 xxx 的排名(排名定义为比当前数小的数的个数 +1+1+1)

4、查询排名为 xxx 的数

5、 求 xxx 的前驱(前驱定义为小于 xxx,且最大的数,如不存在输出-1)

6、求 xxx 的后继(后继定义为大于 xxx,且最小的数,如不存在输出-1)

对于fhq_treap基本上所有操作都是依赖于split和merge完成的,还有一些操作是依靠基本的遍历,就是在树上二分处理了。
插入删除都是直接split和merge,查询排名就是split然后查看siz,查询排名为k的数,就是遍历过程中二分,查询前驱就是split后查询最大的数,查询后继就是split后查询最小的数。

还有一个可持久化的关键就是,每次split和merge一旦需要利用到新的信息,就新建一个节点储存,可以发现这样新建的节点个数是与深度同阶的。

P3835 【模板】可持久化平衡树相关推荐

  1. [模板]可持久化平衡树

    一.题目 点此看题 二.解法 其实可持久化的思路很简单,就是你永远不改原版,而是在新建点上修改. 所以在merge,split\text{merge,split}merge,split的时候用新开的点 ...

  2. [Luogu 3835]【模板】可持久化平衡树

    Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 插入x数 删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作 ...

  3. c++自带的可持久化平衡树?rope大法好!(超详细解答 + 5道例题讲解,可直接替代可持久化的线段树、并查集、平衡树!)

    整理的算法模板合集: ACM模板 目录 c++自带的可持久化平衡树?rope大法好! 1. 声明 2. 支持操作 char类型的rope int类型的rope 3. 具体的细节 4. "可持 ...

  4. 【Luogu】P3369 【模板】普通平衡树(树状数组)

    P3369 [模板]普通平衡树(树状数组) 一.树状数组 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构. ...

  5. fhq_treap || BZOJ 3223: Tyvj 1729 文艺平衡树 || Luogu P3391 【模板】文艺平衡树(Splay)...

    题面: [模板]文艺平衡树(Splay) 题解:无 代码: 1 #include<cstdio> 2 #include<cstring> 3 #include<iostr ...

  6. 洛谷 P3391 【模板】文艺平衡树

    题目背景 这是一道经典的Splay模板题--文艺平衡树. 题目描述 您需要写一种数据结构,来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4 ...

  7. [学习笔记] 伸展树splay详解+全套模板+例题[Luogu P3369 【模板】普通平衡树]

    文章目录 引入概念 全套模板 变量声明 update ==rotate旋转== splay操作 insert插入 delete删除 查找x的位置 查找第k大 前驱/后继 极小值-inf和极大值inf的 ...

  8. codeforces 702F 可持久化平衡树

    题意:有n种T恤,每种有一个价格ci和品质qi.有m个人要买T恤,第i个人有vi块钱,每个人每次都买一件能买得起的qi最大的T恤.一个人只能买一种T恤一件,所有人互不影响.求最后每个人买了多少件T恤. ...

  9. 2020牛客国庆集训派对day8 G-Shuffle Cards(扩展STL容器,rope可持久化平衡树)

    2020牛客国庆集训派对day8 G-Shuffle Cards(扩展STL容器,rope可持久化平衡树) 题目 https://ac.nowcoder.com/acm/contest/7865/G ...

最新文章

  1. 建立双链表(尾插法)
  2. 如何让云存储更好为“我”所用
  3. 盘点:崛起中的九大HTML5开发工具
  4. Adobe Media Server 5(AMS)的安装及使用
  5. linux系统安装xhprof,LNMP部署laravel与xhprof安装使用
  6. 让 API 端点的响应速度提高 50 倍!
  7. 【Python实例第27讲】增量PCA
  8. 1113 Integer Set Partition(25 分)
  9. 求小球落地5次后所经历的路程和第5次反弹的高度
  10. 【不误正业】win10透明任务栏,任务栏居中+桌面美化工具DeskGo
  11. STM32控制SG90舵机与超声波HC_SR04测距模块
  12. mdf导入虚拟主机mysql_MYSQL导入mdf文件
  13. 二层交换机与三层交换机的区别
  14. 很多抽筋的笑话,心情不好的孩子慢慢看。悠着点,不要真抽筋~
  15. CenterNet2:CenterNet再升级,原作者提出基于概率解释的两阶段目标检测
  16. pvt检查是什么意思_专业术语EVT、DVT、PVT、MP是什么意思?
  17. 飞塔(FortiGate)配置IPSec
  18. cookie、sesion
  19. 图片加载失败替代文字_替代艺术:为图像编写出色的描述性文字
  20. 【c语言】组合数递归

热门文章

  1. 世界上最奇异的10种树,你都见过吗?
  2. 这种动作片还需要汽车特效?
  3. 硕士论文研究「AI预测性取向」:化妆等因素并不影响判断
  4. Python的这几个常用库,你会用吗?
  5. python数据整理_python数据类型整理
  6. docker 查看容器_Docker介绍
  7. win10必须禁用的服务_【亲测】Win10系统如何彻底禁止自动更新 亲测有效的Win10关闭自动更新方法...
  8. shapenet网络_GRNet网络:3D网格进行点云卷积,实现点云补全
  9. idea 一直在build_让web开发部署提速 8 倍的一款 IDEA 插件,你有在用?
  10. ccs加载out文件_类加载流程、类加载机制及自定义类加载器详解