• 2024-07-02平衡樹專題Treap
    前言:题单在此:HL平衡树0701-题单-洛谷|计算机科学教育新生态(luogu.com.cn)平衡树什么是平衡树?首先我们需要知道二叉查找树的内容。二叉查找树(BST:BinarySearchTree)首先,他是一棵二叉树其次,他的左子树的权值<根节点的权值<右子树的权值最后,也是最重要的,他的中序遍历
  • 2024-06-16算法课程笔记——FHQ-Treap(无旋)
    算法课程笔记——FHQ-Treap(无旋)
  • 2024-05-25平衡树 Treap & Splay [学习笔记]
    平衡树\(\tt{Treap}\)&\(\tt{Splay}\)壹.单旋\(\tt{Treap}\)首先了解\(\tt{BST}\)非常好用的东西,但是数据可以把它卡成一条链\(\dots\)于是,我们将\(\tt{Tree}\)与\(\tt{heap}\)(堆)合并,以保证平衡树\(\log\)的深度。具体地,我们可以使用旋转操作实现K8He的图
  • 2024-05-23平衡树 Treap & Splay [学习笔记]
    平衡树\(\tt{Treap}\)&\(\tt{Splay}\)壹.单旋\(\tt{Treap}\)首先了解\(\tt{BST}\)非常好用的东西,但是数据可以把它卡成一条链\(\dots\)于是,我们将\(\tt{Tree}\)与\(\tt{heap}\)(堆)合并,以保证平衡树\(\log\)的深度。具体地,我们可以使用旋转操作实现K8He的图
  • 2024-05-19浅谈 FHQ Treap
    浅谈FHQTreap目录浅谈FHQTreap简单介绍前置操作结构分裂split合并merge一般操作Insertdelete查询排名为\(x\)的数查询\(v\)的排名rank查询\(x\)的前驱precursor查询\(x\)的后继successor版题简单介绍FHQTreap,以下简写为\(fhq\),是一种treap(树堆)的变体,功能
  • 2024-05-032024劳动节北斗课堂总结
    第一天上午讲了数据结构平衡树(Treap)随机的笛卡尔树的期望深度是\(log_{n}\)。合并合并以\(x,y\)为根的\(Treap\)过程若\(x,y\)有一个为空,则返回另一个比较\(x,y\)的随机权值若\(x<y\)则递归合并\(x\)的左儿子和\(y\)。否则返回\(x\)和\(y\)的右儿子
  • 2024-05-01fhq-treap
    一些细节本质是利用合并、分裂实现增、删、查。根据用途分为两类分裂:第一类:当作set一样使用,就是中序遍历就把数字排序了。分裂操作按照权值分裂。如果根\(\lek\),那么左边都要归入\(x\),递归右边,\(x\)换成右边(看还能接上去多少)\(>k\)同理,最后pushup一下。第二
  • 2024-04-27平衡树炫酷科技
    标题是吸引你点进来的Case1LCT的access操作应该可以实现某种区间覆盖的操作(听同学讲的,具体的还待讨论)Case2众所周知,可并堆中左偏树合并是这样写的(记\(dist\)为\(rd\)):merge(A,B)if!A:returnBif!B:returnAifB.val>A.valswap(A,B)A.rs<-m
  • 2024-04-25FHQ Treap
    P3369【模板】普通平衡树前言:平衡树是一种二叉搜索树,通过一些方法来做到快速维护单点或区间信息和快速查询单点或区间信息,其中包括排名、前驱等等。在\(\rmSTL\)库中虽有实现,但是由于封装的太好以及是可持久化数据结构的基础,还是需要学习的。FHQTreap:FHQTreap是一种不
  • 2024-03-29平衡树
    不持续更新。前置知识二叉搜索树又称BST堆其实我也不会FHQ-Treap一般使用小根堆。FHQ-Treap简述FHQ-Treap是一种基于分裂和合并操作的平衡树。它没有旋转,极易上手,非常适合cainiaoshanglu。核心思想我们对于一个点存储两个权值\(a_i,h_i\),其中\(a_i\)满足小根
  • 2024-03-15二叉查找树/堆 /Treap/Spaly树串联分析
    二叉查找树(BST)二叉查找树:中序遍历是一个递增的序列。父节点的左子树的所有结点都比父节点小,父节点右子树的结点比父节点都大。在一颗随机构造的BST上,查找一个元素的时间复杂度位O(logn),但是如果我们有序的插入结点,那么BST的高度将位N,时间复杂度位O(n)。importjava.util.Sc
  • 2024-03-13C++:[NWRRC2015] Concatenation(洛谷)P7050
    题目描述FamousprogrammerGennadylikestocreatenewwords.Onewaytodoitistoconcatenateexistingwords.Thatmeanswritingonewordafteranother.Forexample,ifhehaswords cat and dog,hewouldgetaword catdog,thatcouldmeansomething
  • 2024-03-13课件
    1基础数据结构2基本算法3搜索A*算法4高级数据结构线段树分块与莫队算法简单树上问题二叉搜索树替罪羊树Treap树FHQTreap树Splay树5动态规划6数论与线性代数7组合数学8计算几何9字符串KMP10图论图的存储有向图的连
  • 2024-03-05P5609 [Ynoi2013] 对数据结构的爱
    题面传送门好像搞了个神秘做法。考虑离线扫描线,用一个fhq-Treap维护所有的询问现在长什么样,然后每次操作就整体加\(A_i\),\(\geqp\)的减去\(p\),这个可以分裂之后打整体标记,然后用那个值域相交的fhq-Treap合并实现。然后你发现这样就过了。构造一下卡不掉,于是考虑给这个
  • 2024-02-29FHQ-treap学习笔记
    平衡树,即平衡二叉搜索树。二叉搜索树(BST),它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。(from百度百科)而在使用这种
  • 2024-02-27CF1862G 题解
    首先这个查询操作很迷,考虑先化简查询操作。不难发现由于每次是加上一个逆的等差序列,因此一次操作完每个数与它的前驱之差一定会减少,因此加上等差序列的次数就等于全局每个数与它的前驱之差最大值。又因为会排序去重,所以最后剩下来的数一定是最开始的数一路加过来的,至此我们发现
  • 2024-02-18模板默写
    别到时候题会做了板子不会写……数据结构主席树ProbFHQTreap可持久化FHQTreap图论支配树Prob上下界最大/最小流带负圈的费用流数学万能欧几里德杜教筛字符串ACAMSASAMGSAM……
  • 2024-02-08Treap 树
    1.概念Treap树是维护二叉查找树平衡的一种方法。它的核心思想是给每个结点设置一个随机的优先级,使它成为一个堆,即父亲的优先级一定小于(或大于)孩子的优先级。大于则为大根堆,小于则为小根堆。本节使用的是小根堆。这样就可以实现概率上的平衡。下图是一棵Treap树的建树方法。
  • 2024-01-17P3391 文艺平衡树 题解
    QuestionP3391文艺平衡树写一种数据结构维护有序数列,需要完成以下操作:翻转一个区间,例如原有的序列是\(5,3,3,2,1\),翻转区间是\([2,4]\)的话,结果是\(5,2,3,4,1\)Solution这道题的表达是\(Splay\)但是\(Splay\)的代码实现比较困难,考虑使用FHQTreap。先思考如何将一
  • 2024-01-15Treap(平衡树)
    Treap前置芝士二叉搜索树(BST),见BST。平衡二叉树(AVL)。先来介绍一下平衡二叉树。背景BST出现以后,人们很快发现一个问题,当其维护一个有序序列时,很可能会退化成链。如图:这样的话,原来\(O(\log{n})\)的复杂度就退化为\(O(n)\),这是我们无法接受的,于是平衡二叉树横空出世
  • 2023-12-222023.12.22~ 做题记录
    1.ICPC2022Xi'anRABridge感觉很妙啊,应该不止蓝吧?首先一个转化是每次建桥操作就相当于交换两条链的后半部分,可以看看扶苏那篇题解的图。我们将每个点表示为形如\((x,y)\)的二元组表示它初始在第\(x\)行第\(y\)列,按\(y\)为键值排序,那么一次询问就是查询一条链的最
  • 2023-12-16Treap
    前置:BST\(Treap=BST+heap\),通过额外维护堆的性质来避免退化成链的问题。与\(BST\)中结构释义相同的部分不做解释。\(priority\)表示优先级,即该节点在小根堆中的值,\(child[0]\)表示左孩子,\(child[1]\)表示右孩子。\(public\)中,\(empty\):时间复杂度\(O(1)\)。其余操作时间复杂
  • 2023-12-11平衡树(无旋Treap,范浩强树)学习笔记
    平衡树:YYDS以下是常见的平衡树/要用平衡树实现的算法:Treap(有旋/无旋)Splay树WBLT(WeightBalancedLeafyTree,重量平衡线段树)SBT(SizeBalancedTree,陈启峰树)AVL树B树、B+树笛卡尔树红黑树、左偏红黑树、AA树替罪羊树\(\to\)K-DTree(k-DimensionTree)LT(LeafyTree,平
  • 2023-12-10Treap 学习笔记
    二叉查找树二叉查找树是一棵有点权的二叉树,具有以下几个特征:左孩子的权值小于父亲的权值右孩子的权值大于父亲的权值中序遍历及从小到大排序二叉查找树支持以下几个操作:插入一个数删除一个数找一个数的前驱找一个数的后继询问一个数的排名询问排第几名的数二叉查
  • 2023-10-23Treap
    概述FHQTreap基于Treap发明的“无旋Treap”,代码短,易理解且速度快(在OI算是很优秀的算法了)。FHQTreap核心函数只有两个,分别是分裂和合并。字面意思,就是将某一棵二叉查找树按某种要求分裂成两个或将两个合并成一个。实现变量维护变量名功能root记录所维护