- 博客(4)
- 收藏
- 关注
原创 斜率优化/单调队列入门
什么是斜率优化?什么时候用?首先,我们要知道的一个知识是单调队列(虽然不一定能用,但基本上一定要用)单调队列是维护一段有序子序列而存在的。想象一下,一些参差不齐的积木们,如何从一个积木找到其左边的第一个比他大的积木?一种方案是线段树维护区间信息,单log另一种是单调栈。如果说一个积木在另一个积木右边并且比他更大一些,那是不是意味着没有“另一个”积木没有用了,应该扔掉?那么留下来的积木是什么样的?有序的,从大到小的。好了,基本思想介绍到这,不会单调队列的自行学习。
2023-11-14 22:07:27 56
原创 平衡树Treap入门
平衡树,维护的是两个性质,每个节点有两个权值,第一个是它的值val,第二个是你赋予它的一个随机权值rand。 堆:任何结点的父节点的 rand 都大于 (等于)ororor 小于(等于)它的rand 二叉搜索树:一个结点左孩子(如果有)的 val 大于它的 val ,右孩子(如果有)的 val 大于它的 val。 一,旋转操作 旋转操作的核心是,在不破坏除了当前旋转两点的堆性质,所有节点满足二叉搜索树的情况下,将一个结点旋到其父节点的位置上。 本人很懒,借用一下这篇博客的图 这是一个左旋操作:将A的左孩
2021-10-10 11:41:16 131
原创 树链剖分板子的详解
前置知识:基础求和线段树 + 树上操作 + dfs (废话) 一. 什么是树链剖分? 树链剖分,将一棵树分成多条链然后摆在一起用线段树维护区间和。 二. 基础概念有什么 重儿子:一个结点的儿子中子树节点数最大的那一个就是他的重儿子 轻儿子:一个结点中不是他的重儿子的儿子都是他的轻儿子 (叶子节点没有轻儿子 or 重儿子) 重(zhong)边:连接两个重儿子的边 轻边:重边除外的边 链:树上任两点的简单路径 重链:链上的点都为重儿子的链 三 . 需要的属性 树映射到数组里某结点的新位置,新位置对应的树上
2021-07-31 14:14:45 218
原创 2021-07-30
前置知识:基础求和线段树 + 树上操作 + dfs (废话) 一. 什么是树链剖分? 树链剖分,将一棵树分成多条链然后摆在一起用线段树维护区间和。 二. 基础概念有什么 重儿子:一个结点的儿子中子树节点数最大的那一个就是他的重儿子 轻儿子:一个结点中不是他的重儿子的儿子都是他的轻儿子 (叶子节点没有轻儿子 or 重儿子) 重(zhong)边:连接两个重儿子的边 轻边:重边除外的边 链:树上任两点的简单路径 重链:链上的点都为重儿子的链 三 . 需要的属性 树映射到数组里某结点的新位置,新位置对应的树上
2021-07-30 18:35:36 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人