上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: Konig定理 由匈牙利数学家柯尼希(D.Konig)于1913年首先陈述的定理。 定理的内容:在0-1矩阵中,1的最大独立集合最小覆盖包含的元素个数相同,等价地,二分图中的最大匹配数等于这个图中的最小点覆盖数。 证明: 对于上面的二分图,它的最大匹配(不唯一)已经用红线标出来了, 然后我们对于右边 阅读全文
posted @ 2018-03-06 19:57 Bennettz 阅读(2902) 评论(0) 推荐(2) 编辑
摘要: 概述 如果要维护一个序列,我们通常会使用数组和链表 但是如果要在序列中插入一些元素,以上两种数据结构的复杂度都是O(n) 于是就有了块状链表,它是数组和链表的结合:即一个链表的节点是一个数组 如果使链表的每个节点大小<sqrt(n),相邻两个节点大小和>sqrt(n),则链表长度也保持在 [sqrt 阅读全文
posted @ 2018-03-05 10:40 Bennettz 阅读(275) 评论(0) 推荐(1) 编辑
摘要: 伸展树是一种自平衡二叉查找树,它将每次操作的节点都旋转到根节点,伸展树操作的均摊时间复杂度为logn 基本操作 存储 伸展操作 伸展树的最基本的操作当然就是伸展了,这也是它自平衡的基础 splay(x,S)表示在保持伸展树有序性的前提下,通过一系列旋转将伸展树S中的元素x调整至树的根部。 旋转操作就 阅读全文
posted @ 2018-01-30 20:50 Bennettz 阅读(608) 评论(0) 推荐(1) 编辑
摘要: AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,是一种高度平衡的自平衡二叉查找树 它的查找、插入和删除在平均和最坏情况下都是O(log n),这得益于它的性质: 在满足二叉查找树的性质情况下,还满足每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1 阅读全文
posted @ 2018-01-30 09:52 Bennettz 阅读(238) 评论(0) 推荐(1) 编辑
摘要: 定义 SBT也是一种自平衡二叉查找树,它的平衡原理是每棵树的大小不小于其兄弟树的子树的大小 即size(x->l)$\ge$size(x->r->l),size(x->r->r),右边同理size(x->r)$\ge$size(x->l->l),size(x->l->r) 具体操作 旋转 旋转几乎是 阅读全文
posted @ 2018-01-27 15:58 Bennettz 阅读(2462) 评论(2) 推荐(1) 编辑
摘要: 定义: Treap,顾名思义,就是tree和heap的结合,既满足二叉搜索树的性质,又满足二叉堆的性质 但是一个要求节点值小于右儿子的值,一个要求节点值大于右儿子的值,显然不可能做到 那我们只能一个节点存两个值,一个满足二叉搜索树(BST)性质,一个满足二叉堆的性质:如下图 节点中黑色的值满足二叉搜 阅读全文
posted @ 2018-01-26 16:10 Bennettz 阅读(312) 评论(0) 推荐(1) 编辑
摘要: 定义 可持久化线段树是可以保留历史版本的线段树,相当于保留了每次修改后的线段树,并且可以对每次修改后的结果进行查询 主要思想 对于询问历史版本的问题,我们对每次修改都新建一棵线段树 但是如果修改次数特别多,这样肯定是不可行的,这就要用到可持久化线段树了 我们通过观察可以发现,对于线段树的每次修改,不 阅读全文
posted @ 2018-01-25 16:30 Bennettz 阅读(204) 评论(0) 推荐(1) 编辑
摘要: 定义 划分树是一种基于线段树的数据结构。主要用于快速求出序列区间的第k大值。 划分树的根节点存储原数列 每个节点的左子节点存储它元素中较小的一半,右子节点存储它元素中较大的一半 并且同一个节点中元素的排列和原数列一样 例如1,5,3,4,2构成的划分树如下图所示 具体操作 建树 我们发现每层所有节点 阅读全文
posted @ 2018-01-24 22:12 Bennettz 阅读(276) 评论(0) 推荐(1) 编辑
摘要: 定义 归并树是线段树和归并排序的合成,它利用线段树将归并排序的每一步都记录下来 例如我们对1,5,3,4,2进行归并排序,就可以生成下面的归并树 归并树的每个父节点就是两个子节点归并排序后的结果 并且归并树的叶子节点的顺序是初始序列的顺序 用处 可以快速求出在原序列的一个区间中比某个数小(大)的有多 阅读全文
posted @ 2018-01-24 16:21 Bennettz 阅读(3219) 评论(0) 推荐(2) 编辑
摘要: zkw线段树是一种用空间换取操作的简便性和时间常数的线段树。 它使线段树节点的存储位置有规律,从而将线段树的递归操作用循环替代 zkw线段树一般分为有区间修改和无区间修改两种,无区间修改的zkw线段树可以做到O(1)的单点查询,比有区间修改的要快 无区间修改的zkw线段树 建树 下面用一张图解释普通 阅读全文
posted @ 2018-01-20 12:45 Bennettz 阅读(1051) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页