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

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一旦需要利用到新的信息,就新建一个节点储存,可以发现这样新建的节点个数是与深度同阶的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础篇--Java IO--概览

字符流、字节流、输入流、输出流 Java 中使用IO(输入输出)来读取和写入,读写磁盘文件、内存、网络数据。输入输出是相对内存而言,往内存中读数据就为输入流,从内存中往外写就是输出流。 根据处理类型分为字符流、字节…

半平面交练习(计算几何)

四&#xff1a;半平面交 Rotating Scoreboard /*Author : lifehappy */ #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <iostream>using namespace std;const double pi ac…

.NET轻松写博客园爬虫

爬虫&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取网站的程序或者脚本。.NET写爬虫非常简单&#xff0c;并能轻松优化性能。今天我将分享一段简短的代码&#xff0c;爬出博客园前200页精华内容&#xff0c;然后通过微小的改动&#xff0c;将代码升级为多线程爬虫&am…

P5055 【模板】可持久化文艺平衡树

P5055 【模板】可持久化文艺平衡树 突然发现fhq_treap也是可以支持区间翻转的&#xff0c;所以基本上和其他平衡树是一样的&#xff0c;而且还满足重量平衡树的性质&#xff0c;真是太优秀了&#xff0c;只不过常数稍微比较大。 然后这里我们变成了一颗区间平衡树&#xff0c…

kettle同步数据中文乱码问题解决

最近在使用kettle进行数据同步的时候&#xff0c;发现同步来的中文数据产生了乱码。试了下网上的解决方案&#xff0c;最终解决了这个问题。步骤如下&#xff1a; 1&#xff1a;kettle中配置源数据库、目标数据库编码 2&#xff1a;编辑“表输入”&#xff0c;去掉勾选“允许建…

WTM重磅更新,LayuiAdmin免费用 and more

从善如登&#xff0c;从恶如崩。对于一个开发人员来说&#xff0c;那就是做一个好的系统不容易&#xff0c;想搞砸一个系统很简单&#xff0c;删库跑路会还不会么。对于我们开源框架的作者来说&#xff0c;做一个好的框架就像登山&#xff08;也许是登天&#xff09;&#xff0…

Lady Layton with Math(杜教筛)

Lady Layton with Math ∑i1n∑j1nϕ(gcd(i,j))∑d1nϕ(d)∑i1n∑j1n[gcd(i,j)d]∑d1nϕ(d)∑i1nd∑j1nd[gcd(i,j)1]∑d1nϕ(d)(2∑i1nd∑j1i[gcd(i,j)1]−1)∑d1nϕ(d)(2∑i1ndϕ(i)−1)\sum_{i 1} ^{n} \sum_{j 1} ^{n} \phi(gcd(i, j))\\ \sum_{d 1} ^{n} \phi(d) \sum_{…

概率期望复习

概率期望 P(A并B)P(A)P(B)-P(A交B) 条件概率 已知A发生B发生的概率&#xff0c;记作P(B|A) 四种情况 P(AB都发生)a,P(AB都不发生)b P(只有A发生)c,P(只有B发生)d P(B|A)a/(ac),即P(B|A)P(AB)/P(A) 全概率公式 P(A)P(B1)P(A|B1)…P(Bn)P(A|Bn) 三门问题 生日悖论 贝叶斯…

kettle数据库操作OPTION SQL_SELECT_LIMIT=DEFAULT问题解决

今天在使用kettle配置数据库映射的时候&#xff0c;有如下报错&#xff1a; Couldnt get field info from [select * from pre_user_base_bak]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax …

.netcore 分布式事务CAP2.6 快速入门

CAP介绍&#xff1a;CAP是一个用来解决微服务或者分布式系统中分布式事务问题的一个开源项目解决方案。可以解决跨服务器的数据一致性问题。一个简单的列子&#xff0c;如&#xff1a;订单系统创建订单后需要通知邮件通知用户下单成功&#xff0c;解决方案有下面几种&#xff1…

[SDOI2017]数字表格

[SDOI2017]数字表格 假定n<m∏i1n∏j1mf(gcd(i,j))∏d1nf(d)∑i1n∑j1m[gcd(i,j)d]∏d1nf(d)∑i1nd∑j1md[gcd(i,j)1]∏d1nf(d)∑k1ndμ(k)nkdmkd由于nd具有分块性质&#xff0c;并且n&#xff0c;m不大&#xff0c;所以我们可以先预处理出斐波那契数列的前缀积&#xff0c;…

#3601. 一个人的数论

#3601. 一个人的数论 首先这个转化还是很巧妙的&#xff0c;或者很套路的&#xff0c;直接莫比乌斯反演&#xff0c;然后看到了自然数幂之和的形式&#xff0c;那么我们就可以转化为多项式处理&#xff0c;项数就减少到了d1&#xff0c;然后看到题目给出的都是质因数分解结果&a…

2019-03-5-算法-进化(最长公共前缀)

题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀&#xff0c;返回空字符串 “”。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: 输入: ["dog","racecar","…

基于SQLite+EF6实现一套自己的Key-Value存储管理工具包(2)

上一篇里面整理了一下需求和思路&#xff0c;自定义了扩展的字典对象&#xff0c;这里我们再继续深入编码。BaseExtensions类&#xff0c;这个类作未来任何需要Key-Value形式扩展的基类1234567891011121314151617181920212223242526272829303132333435363738394041424344454647…

P4196 [CQOI2006]凸多边形 /【模板】半平面交

P4196 [CQOI2006]凸多边形 /【模板】半平面交 本来是个板子题&#xff0c;而且我这个板子之前在POJ写过一些题目了&#xff0c;但是这里一直让我RE。 后来解决办法竟然是&#xff1a;先读入第一个多边形不加边&#xff08;存下来&#xff09;&#xff0c;然后去读其他多边形&a…

自然数幂之和

自然数幂之和 https://blog.csdn.net/suncongbo/article/details/97622131 这个文章的整理非常全面。

kettle 空字符串 null问题解决

今天&#xff0c;在配置kettle同步mysql数据的时候&#xff0c;碰到了kettle把空字符串当成null的情况。 解决步骤&#xff1a; 找到配置文件&#xff1a;C:\Users\用户名.kettle目录中找到kettle.properties添加配置&#xff1a;KETTLE_EMPTY_STRING_DIFFERS_FROM_NULLY重启k…

从你的全世界路过—一群程序员的稻城亚丁游记

转眼之间又即将到九月&#xff0c;又到了这个适合去川西旅游的最佳季节。最近有一些朋友问我稻城亚丁的旅游情况&#xff0c;因此我将去年写的这一篇游记再次发出来&#xff0c;希望对那些有计划去川西旅游的朋友们有帮助&#xff01;温馨提示&#xff1a;本文图片较多&#xf…

Beauty Contest(凸包 + 旋转卡壳(模板))

Beauty Contest 直接跑一个凸包&#xff0c;然后跑一跑旋转卡壳&#xff0c;求最大值就行了。 /*Author : lifehappy */ #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <iostre…

P2303 [SDOI2012] Longge(数论/欧拉函数)

P2303 [SDOI2012] Longge 一道看似非常基础的数论题&#xff0c;但是蕴含了非常多的知识&#xff0c;求解 ∑i1ngcd(i,n)\sum_{i1}^ngcd(i,n) i1∑n​gcd(i,n) 这个东西我们轻松地就能化简成id∗φid*\varphiid∗φ的形式&#xff0c;然后考虑如何快速求解&#xff0c;那么可以…