数据结构-平衡树
AcerMo
一只辣鸡大学生
展开
-
P3369 平衡树treap模板
第一次学,调了两天一个操作一个操作的讲插入,这个没啥好说的,将一个点插入树中,定义一个insert(int &o,int v)函数,o传的引用,改变o值时,root也会跟着改变,先判断当前传入值是否存在值,即当前o是否等于0,等于0则没有用过,初始化一个prio=rand(),即给当前插入点随机附一个优先级,防止出题人对着你卡数据把你卡成一条链,用prio来旋转,初始当前点的size为1;...原创 2018-05-01 21:37:03 · 324 阅读 · 0 评论 -
BZOJ1208&&洛谷P2286 [HNOI2004]宠物收养场
Splay半模板题 //By AcerMo //SPLAY毒瘤的加点分割线 #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define lli long long int using namespa...原创 2018-07-22 20:56:33 · 261 阅读 · 0 评论 -
BZOJ3224 普通平衡树 [非旋Treap学习笔记]
相比其他平衡树,非旋Treap看起来更加简洁,而且也去掉了玄学的rotate,并加入了merge(合并),split(分裂) 我们看一下非旋Treap的基本操作 1.split(分裂) 分裂操作是按照权值的大小,将一棵树分裂成<=val和>val两棵树,这样可以实现许多操作 inline void split(int now,int k,int &x,int &...原创 2018-08-11 15:20:10 · 539 阅读 · 0 评论