随笔分类 - 数据结构-平衡树
摘要:区间反转问题 本篇随笔浅谈一下算法竞赛中的区间反转问题。 例题 洛谷 P3391 【模板】文艺平衡树 题目传送门 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列。 其中需要提供以下操作:翻转一个区间,例如原有序序列是 5\ 4\ 3\ 2\ 15 4 3 2 1,翻转区间是 [
阅读全文
摘要:Splay算法旋转操作的模拟 本篇随笔简单讲解一下Splay算法维护平衡树时的旋转操作。重点集中在如何模拟旋转。 对Splay没有概念的同学请移步: Splay详解 先上图再讲: 这是右旋。 针对一个节点,我们需要维护它的父亲、两个儿子、值和子树大小这些信息。在本文中用以下符号表示: ch[x][0
阅读全文
摘要:Splay算法详解 本篇随笔浅谈一下算法竞赛中的算法。 Splay的概念 Splay在我看来应该算作一种算法而非数据结构。无论是Treap,AVL,SBT,替罪羊树还是Splay其实都应该算作算法,因为它们都在解决一种数据结构存在的问题:二叉搜索树。 对于二叉搜索树和Trea
阅读全文
摘要:洛谷 P3369 【模板】普通平衡树 洛谷传送门 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 xx 数 删除 xx 数(若有多个相同的数,因只删除一个) 查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1 ) 查询排名为 xx 的数 求
阅读全文
摘要:树堆(Treap)详解 本篇随笔详细讲解一下一种随机化数据结构——树堆()。 树堆的概念 首先给一个字符串等式: 所以树堆其实就是树+堆。树是二叉查找树,堆是二叉堆,大根堆小根堆都可以。 关于的相关知识,请看
阅读全文
摘要:详解二叉查找树(BST) 本篇随笔简单讲解一下数据结构——二叉查找树(),(后文的“二叉查找树”一词均用代替)。 BST的概念 首先,是一棵二叉树。 它的定义是,根节点左子树全部 严格小于 根节点,右子树 大于等于 根节点,
阅读全文