1. 树的定义 (1)树是一种非线性的数据结构 (2)树是由个结点组成的有限集合。如果n=0,称为空树。如果n>0,则: ①有一个特定的称之为根(root)的结点 ②根结点只有直接后继,但没有直接前驱 ③除根以外的其它结点划分为m(m≥0)个互不相交的有限集合T0、T1、…Tm-1,每个集合又是一棵 ...
分类:
其他好文 时间:
2017-10-28 23:11:20
阅读次数:
242
splay ——!x^n+y^n=z^n update:[更新size] get:[判断是否为右孩子] clear:[清除一个节点] rotate:[旋转] splay:[转到根] insert:[插入一个点] find:[查找元素v在序列中的排名] findx:[查找排名为x的点] pre:[前驱 ...
分类:
其他好文 时间:
2017-10-28 11:24:45
阅读次数:
237
线性表:零个或者多个元素的有限序列。包括顺序表和链表(单向链表、循环链表、双向链表、循环双向链表) 线性表的定义 若将线性表记为(a1,...,ai-1,ai,ai+1,...,an),则表中 ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i ...
分类:
其他好文 时间:
2017-10-25 13:14:06
阅读次数:
204
题意:每天给你一个数,要求统计最小波动值,强制在线的就是每次从已经出现过的数值中找与当前值间隔最小的加起来 题解:splay维护,同时求解当前值的前驱和后继,找距离小的那个就好了 splay是一种二叉搜索树,可以在log(n)的时间内维护,而且通过左旋和右旋避免二叉搜索树退化成一条链,而且可以利用二 ...
分类:
其他好文 时间:
2017-10-19 00:17:54
阅读次数:
255
[TYVJ1730]二逼平衡树 题目 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小 ...
分类:
其他好文 时间:
2017-10-07 19:41:49
阅读次数:
150
Description 树是一种很常见的数据结构。 我们把N个点,N-1条边的连通无向图称为树。 若将某个点作为根,从根开始遍历,则其它的点都有一个前驱,这个树就成为有根树。 对于两个树T1和T2,如果能够把树T1的所有点重新标号,使得树T1和树T2完全相 同,那么这两个树是同构的。也就是说,它们具 ...
分类:
其他好文 时间:
2017-10-06 23:15:13
阅读次数:
247
Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) ...
分类:
其他好文 时间:
2017-10-06 11:40:27
阅读次数:
205
SET函数的基本用法 by hhl 使用set的好处 1. 当增加元素后,集合会自动删重并从小到大排列(时间比快排还快)2. 相当于一棵伸展树(能快速求出前驱后继) 使用基础 例题 题目:输入n个数,输出一个无重复从小到大的集合。输入:第一行输入n,第二行输入n个数(a[1],a[2]….a[n]) ...
分类:
其他好文 时间:
2017-10-06 11:33:05
阅读次数:
181
【传送门:BZOJ1588】 简要题意: 给出n个数,每个数只能前面的任意一个数相减,要求差的绝对值最小,求出所有数做的差的最小绝对值的和(第一个数做得差的最小绝对值就是它自己) 题解: 伸展树SPLAY,将n个数逐个放进伸展树中,在放一个数时,先求出这个数在树中的前驱和后继,然后比较哪个最接近这个 ...
分类:
其他好文 时间:
2017-10-06 10:35:51
阅读次数:
174
带修改的 HH的项链。 带修改考虑用BIT套主席树,查区间里有几个不同的数用a[i]上次出现的位置pre[i]<l的数有几个来算就好了。 考虑怎么修改。修改i的时候,我们需要改变i同颜色的后继的pre,加入新的颜色,并且找到i在新颜色中的前驱后继,更改自己的pre和在新颜色中后继的pre,于是用一个 ...
分类:
其他好文 时间:
2017-10-03 18:11:28
阅读次数:
153