随笔分类 -  点分治

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