随笔分类 - 点分治
摘要:SOL: 对这棵树进行树分治,求出重心到每个点的前缀和 s。 对于两个点 i, j,假设是从 i 开始走到 j,那么它们的 s 互为 相反数,且 i 的 s 是它到重心路径上最大的,j 的 s 则是最 小的。 同时维护一下最值出现的个数,即可得到将两条链拼起来的 链的 f 值。 将所有点按 s 桶排
阅读全文
摘要:点分治用来统计树上路径。 点分治的核心是分治。 我们选一个点,统计过该点的路径。然后分治每一颗子树。 我们如果选择重心的话,可以证明,最多递归logn次。 因为选择重心,我们每一次递归的子树节点数都要小于原树的一半,所以log级别。 那么我们如果统计过一点的时间是T(x),则总时间为O(logn*T
阅读全文