随笔分类 -  笔记 / 数学 / 图论 / 树论

摘要:概述 LCA(least common ancestor),最近公共祖先的英文缩写。 顾名思义,LCA 就是树上两个点最近的公共祖先,或者说两个点共同在的极小子树的根。 树上差分则是利用树本身的结合性(显然树不满足差分性,是点到根的链满足差分性)与 LCA 结合做的操作,譬如给某个路径上所有点 $+ 阅读全文
posted @ 2023-02-07 09:51 未欣 阅读(103) 评论(0) 推荐(0)
摘要:概述 长链剖分通过把树剖成尽量长的多个链,高效地解决...我也不知道解决啥(长剖优化 DP 的东西在 DP 优化那边)。 毕竟这个东西,不具备启发式分裂的复杂度。不过其还是有一点性质的,有时候确实会用到... 恰如轻重剖是按 $siz$ 选重儿子,长剖是按 $dep$(这里指当前子树的最大深度)来选 阅读全文
posted @ 2023-02-07 09:45 未欣 阅读(43) 评论(0) 推荐(0)
摘要:概述 轻重链剖分通过将树剖分为若干条重链和它们之间相连的轻边,将树上路径问题转化成序列问题。 具体来讲,有很多树上路径问题本质上是把序列上的问题搬到了树上,此时我们可以进行轻重链剖分(后简记为轻重剖或重剖),将树上路径拆分为多条重链头尾相接,并通过能快速维护重链信息的数据结构来求解。 重剖方式如下: 阅读全文
posted @ 2023-02-07 09:39 未欣 阅读(63) 评论(0) 推荐(0)
摘要:概述 树分治通过树的唯一连通性质,递归地求解树上路径(主要是路径长度)相关的问题。 树分治主要包括点分治和边分治。我只会点分治。 点分治 点分治通过选取点作为分割来求解树上路径问题。 较具体地说,如果我们选定一个关键点 $key$ 来分割当前处理的(子)树,那么路径可以分为以下两种: 过 $key$ 阅读全文
posted @ 2023-01-15 10:12 未欣 阅读(62) 评论(0) 推荐(0)