树链剖分(重链剖分,长链剖分)
将树划分为一条条标号连续的链
_ducati
这个作者很懒,什么都没留下…
展开
-
CF1120D Power Tree——图论建模求生成树,依次加点大力树剖
DescriptionSolution首先找到这棵树的所有叶节点并按照它们的dfsdfsdfs序排序。不难发现,对一个节点进行控制等价于可以将叶子序列中的一段区间做加一或减一操作。区间修改似乎很烦,于是差分一下。此时对[l,r][l,r][l,r]做操作等价于将差分数组的第lll位加111,第r+1r+1r+1位减111,于是从lll到r+1r+1r+1连一道边权为wuw_uwu的无向边。由于r+1r+1r+1超过了叶节点的数量,所以我们要新建一个虚叶节点。现在我们要删去一些边使得最终的控制方案合原创 2020-12-27 11:47:07 · 274 阅读 · 0 评论 -
差分之间,性质多多——差分综合应用学习笔记
差分,能够巧妙地维护多种区间修改,将区间修改转化为单点修改,将询问转化为前缀查询。但是,差分能支持的,岂止是这些。有时,差分一下,性质多多。例1. [Luogu P4552]IncDec SequenceDescription给定一个序列,请求出至少需要多少次区间统加111或区间统减111的操作才能使得整个序列中的数两两相同。为了增加难度,你也需要求出,在满足操作次数最小且最终序列中的数两两相同的前提下,最终能够得到多少种不同的序列。Solution本题中有区间修改这一说。不难想到差分。现在原创 2020-12-13 11:34:09 · 7227 阅读 · 0 评论 -
P4292 [WC2010]重建计划——一题多解, 长剖胜出
Description请在图上找到一个长度在[L,R][L,R][L,R]之间的路径,使得这条路径经过的所有边的权值的平均值最大。请输出这个平均值。Solution 1: 二分+点分治+线段树首先,我们二分答案。假设当前二分到的值为midmidmid,我们将所有边权暂时减去midmidmid。显然,在原图中一条边权平均值不小于midmidmid的路径,等价于在新图中权值和为非负数的路径。考虑点分治。我们扫描当前节点nownownow的所有儿子,维护一棵线段树,它以深度(即与nownownow的距离)原创 2020-12-12 21:10:08 · 136 阅读 · 0 评论 -
CF1254D 题解&&总结
文章目录SolutionSubtask 1: n,q≤5000n,q≤5000n,q≤5000Subtask 2: n,q≤105n, q≤10^5n,q≤105, 每个节点的度数不超过101010Subtask 3: n,q≤105n,q≤10^5n,q≤105, 无特殊限制Subtask 4: n,q≤5×105n, q≤5×10^5n,q≤5×105,无特殊限制Code总结⌊\lfloor⌊ 从朴素到根号分治,从根号分治到树剖 ⌉\rceil⌉Div.1 D的神仙题 ????SolutionS原创 2020-11-04 15:01:38 · 265 阅读 · 0 评论