Splay教程】的更多相关文章

目录 前言 引入 教程 Rotate Splay 一些其他操作: 区间翻转 结语 前言 Splay是名副其实的区间小能手.它会经常出现在一些有关区间的题上.而本蒟蒻只会Treap,感到分外难受,于是就有了这个教程. 引入 Splay首先是一颗二叉查找树.也就是说,对于任何一颗子树,左子树内所有的值均小于根,右子树内所有的值均大于根.也就是下图这样,数字代表值. 这样的话,中序遍历的结果就是从小到大的. 但是这棵树可能会退化成这样: 会使操作奇慢无比.所以我们考虑优化. 教程 Rotate Rot…
首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角.. 首先引入一下splay的概念,他的中文名是伸展树,意思差不多就是可以随意翻转的二叉树 PS:百度百科中伸展树读作:BoGang,不知道是不是因为和某位大牛有关系 先看一道题目: skydec有n个数,每次他都会把一些数放进一些盒子里,由于skydec太傻×,所以他不能判断数的大小,现在他请求你帮他求盒子里的第K小数 输入:一个数n表示数的个数,一个数m表示操作的个数 (n<=m<=100000) 操作由2部分组成,简…
原文链接https://www.cnblogs.com/zhouzhendong/p/Balanced-Binary-Tree.html 注意是简单教程,不是入门教程. splay 1. 旋转: 假设点 y 原是点 x 的 father,旋转操作可以在不改变中序遍历的基础上,将 y 变成 x 的儿子.例如: 旋转后: 代码: int wson(int x){ return son[fa[x]][1]==x; } void pushup(int x){ tot[x]=cnt[x]+tot[son[…
本文发布于洛谷日报,特约作者:tiger0132 原地址 分割线下为copy的内容 [洛谷日报第62期]Splay简易教程 洛谷科技 18-10-0223:31 简介 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树. 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值:若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值:左.右子树也分别为二叉排序树…
笔者一个数据结构的蒟蒻还是奇迹般的搞明白了splay的基本原理以及实现方法,所以写下这篇随笔希望能帮到像我当初一脸懵逼的人. 我们从二叉查找树开始说起: 二叉查找树是一棵二叉树,它满足这样一个性质:所有小于当前节点的点都在该节点的左子树上,所有大于当前节点的点都在该节点的右子树上.对于和当前节点一样大的点,我们有两种方法,一种是直接默认它到右子树上去,但是这样会造成空间的浪费.我们有一种比较好的操作是设置一个权值数组,如果出现了这种一样的情况,就直接把这个点的权值+1就可以了. 手绘了一棵二叉查…
最近“hiho一下”出了平衡树专题,这周的Splay一直出现RE,应该删除操作指针没处理好,还没找出原因. 不过其他操作运行正常,尝试用它写了一道之前用set做的平衡树的题http://codeforces.com/problemset/problem/675/D,运行效果居然还挺好的,时间快了大概10%,内存少了大概30%. #include <cstdio> #include <cstring> #include <string> #include <cstd…
Hihocoder 1329 平衡树·Splay(平衡树) Description 小Ho:小Hi,上一次你跟我讲了Treap,我也实现了.但是我遇到了一个关键的问题. 小Hi:怎么了? 小Ho:小Hi你也知道,我平时运气不太好.所以这也反映到了我写的Treap上. 小Hi:你是说你随机出来的权值不太好,从而导致结果很差么? 小Ho:就是这样,明明一样的代码,我的Treap运行结果总是不如别人.小Hi,有没有那种没有随机因素的平衡树呢? 小Hi:当然有了,这次我就跟你讲讲一种叫做Splay的树吧…
首先声明,本教程的对象是完全没有接触过splay的OIer,大牛请右上角. 先看一道题目: skydec有n个数,每次他都会把一些数放进一些盒子里,由于skydec太傻×,所以他不能判断数的大小,现在他请求你帮他求盒子里的第K小数 输入:一个数n表示数的个数,一个数m表示操作的个数 (n<=m<=100000) 操作由2部分组成,简称为a和b,如果a=0,则表示将b放进盒子里,如果a=1,则表示询问盒子里的第b小数 输出:对于每次询问输出答案 由于是临时造的题目,就不造样例了,引用一句RZZ大…
点亮技能树行动-- 本篇blog按照分类将网上写的OI知识点归纳了一下,然后会附上蒟蒻我的学习笔记或者是我认为写的不错的专题博客qwqwqwq(好吧,其实已经咕咕咕了...) 基础算法 贪心 枚举 分治 倍增 构造 高精 模拟 图论 图 最短路,次短路 k短路 差分约束 最小生成树 拓扑排序 欧拉图 二分图染色,二分图匹配 最大团,最大独立集 tarjan找scc.桥.割点,缩点 网络流 最大流,最小割,费用流 有上下界的网络流 分数规划 2-SAT 树 LCA 最近公共祖先 树的直径 树的重心…
P3369 [模板]普通平衡树 平衡树大法好,蒟蒻(博主)最近正在收集高级数据结构的碎片,企图合成数据结构的元素之力来使自己的RP++... 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入xx数删除xx数(若有多个相同的数,因只删除一个)查询xx数的排名(排名定义为比当前数小的数的个数+1+1.若有多个相同的数,因输出最小的排名)查询排名为xx的数求xx的前驱(前驱定义为小于xx,且最大的数)求xx的后继(后继定义为大于xx,且最小的数) 教程地址 博主太蒟,…