应该算是比较基础的知识了吧 …… 随便写写,主要内容是证明。 例题(现编的):有一棵 \(m\) 个点的有根树,每个点上有若干个数,\(m\) 个点上共有 \(n\) 个数,数的规模是 \(N\) 。每次询问给定 \(u,l,r\) ,求 \(u\) 的子树中有多少个数在 \([l,r]\) 中 ...
本文用势能法证明 Splay 的均摊复杂度,对 Splay 的具体操作不进行讲述。 为了方便本文的描述,定义如下内容: 在文中我们用 T 表示一棵完整的 Splay ,并 不严谨地 用 T 表示 T 这棵 Splay 的节点数目。 如无特殊说明,小写英文字母 如 x , y , z 在本文中表示 T 的一个节点,并 不严谨地 用 x 表示以节点 x 为根的子树的大小, x in T 表示节点 x ...
2018-09-27 19:53 3 1144 推荐指数:
应该算是比较基础的知识了吧 …… 随便写写,主要内容是证明。 例题(现编的):有一棵 \(m\) 个点的有根树,每个点上有若干个数,\(m\) 个点上共有 \(n\) 个数,数的规模是 \(N\) 。每次询问给定 \(u,l,r\) ,求 \(u\) 的子树中有多少个数在 \([l,r]\) 中 ...
\(Splay\)的复杂度分析 不论插入,删除还是访问,我们可以发现它们的复杂度都和\(splay\)操作的复杂度同阶,只是一点常数的区别 我们不妨假设有\(n\)个点的\(splay\),进行了\(m\)次\(splay\)操作 采用势能分析 我们记\(w(x) = \left ...
作者: Dong | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明 网址: http://dongxicheng.org/structure/splay-tree/ 1、 概述 二叉查找树(Binary Search Tree,也叫二叉排序树 ...
伸展树是比较神奇的,它可以做很多线段树不能实现的事情。 最近做伸展树做了好长时间了,现在重新把题目整理下,代码统一些一下呢。说明多是含在代码的注释中。 刚开始学,可以看论文,然后按照别人的代码去写。 我是参照cxlove大神学习的:http://blog.csdn.net ...
Splay伸展树 有篇Splay入门必看文章 —— CSDN链接 经典引文 空间效率:O(n) 时间效率:O(log n)插入、查找、删除 创造者:Daniel Sleator 和 Robert Tarjan 优点:每次查询会调整树的结构,使被查 ...
Splay Tree(伸展树) 简介 Splay Tree是一种二叉查找树(BST),即满足二叉树上任意一个节点的左儿子权值>自身权值>右儿子权值,它通过旋转操作使得树上单次操作的均摊复杂度为 \(\log n\),由Daniel Sleator和Robert Endre ...
众所周知,树上背包如果上下界都卡紧了复杂度会是 \(O(nm)\),下面来进行这一点的证明。 以下设节点总数为 \(n\),背包容量最大是 \(m\)。 合并两个泛化背包的复杂度为 \(O(s_1s_2)\),其中 \(s_1\) 是第一个泛化背包的容量,\(s_2\) 是第二个背包的容量 ...
伸展树的基本操作与应用 【伸展树的基本操作】 伸展树是二叉查找树的一种改进,与二叉查找树一样,伸展树也具有有序性。即伸展树中的每一个节点 x 都满足:该节点左子树中的每一个元素都小于 x,而其右子树中的每一个元素都大于 x。与普通二叉查找树不同的是,伸展树可以自我调整,这就要依靠伸展 ...