Splay

Qtree V

lmn u 表示 u 所在splay子树最上方点距离最近的白点 rmn u 表示 u 所在splay子树最下方点距离最近的白点 开一个set维护所有虚儿子能走到的最近的白点的距离 考虑pushup, 对于它的右儿子,考虑要么从这个点走向它的虚儿子,要么通过它左子树中深度最大的点走。 对于它的左儿子要么从这个点走向它的虚儿子,要么通过它右子树的最浅点走。 #...

Splay算法基础与习题

前言 Spaly是基于二叉查找树实现的, 什么是二叉查找树呢?就是一棵树呗:joy: ,但是这棵树满足性质—一个节点的左孩子一定比它小,右孩子一定比它大 比如说 这就是一棵最基本二叉查找树 对于每次插入,它的期望复杂度大约是logn级别的,但是存在极端情况,比如9999999 9999998 9999997.....1这种数据,会直接被卡成n2 在这种情...

ZJOI 2019 划水记

作为一个极其蒟蒻的OIer,虽然没有省选资格但还是去见见世面。 ZJOI2019一试是在浙江省镇海中学。听名字就很霸气。 学习OI的最后一年,记录下一些事情,即使最终走到最后也一无所获,也是一段美好的记忆吧。 起码,我努力过。 ——ljc20020730 Day -1 20190323 晚上复习下基础数论,写了十几个板子(excrt,exgcd什么的),写...

P3391 文艺平衡树(Splay做法)

您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5 4 3 2 15 4 3 2 1,翻转区间是 [2,4][2,4] 的话,结果是 5 2 3 4 15 2 3 4 1。 #include<bits/stdc++.h> using namespace std; const i...

splay模板 指针版&amp;amp;splay被卡祭

普通平衡树板子 参考了大佬博客 访问空指针会出错,我用了一个nil代替他。(c++是谁设计的我还得把结构体定义在外面真难受) #include<bits/stdc++.h> using namespace std; typedef pair<int,int> pii; #define forg(i,x) for(int i=firs...