随笔分类 -  点分治/点分树

摘要:洛谷传送门 考虑 \(d = 2\) 的部分分。相当于只用 \(2\) 次操作把 \(T\) 变成一条链。 不妨设最后变成的是一个 \(1 \sim n\) 的链,如果不是可以把点重编号。 第一次操作考虑以 \(n\) 为根,每次取每个儿子的子树中的最大值为新的根并和原来的根连边,这样会将整棵树具有 阅读全文
posted @ 2024-04-10 16:38 zltzlt 阅读(59) 评论(0) 推荐(0)
摘要:QOJ 传送门 大分讨恶心题。 首先施容斥,变成求 \(\sum |AB| > \max(|AC|, |BC|)\)。 遇到这种三个点的路径问题,可以找出一个点 \(X\),使得 \(A, B, C\) 在 \(X\) 的不同子树内,也就是 \(A \to B, A \to C, B \to C\) 阅读全文
posted @ 2024-01-23 17:52 zltzlt 阅读(61) 评论(0) 推荐(0)
摘要:洛谷传送门 CF 传送门 比较谔谔,为什么题解区都在群魔乱舞。不是有个很简单的点分树做法吗。 考虑建出点分树,由点分树的性质可得任意两点在点分树上的 LCA 一定在它们的路径上。然后每次暴力跳父亲,每个分治中心维护一个 \(f_i\) 表示距离 \(i\) 最近的红色点的距离即可。 若使用 dfn 阅读全文
posted @ 2024-01-20 23:12 zltzlt 阅读(72) 评论(0) 推荐(0)
摘要:洛谷传送门 转化一下题意,变成求 \(x\) 在只经过编号 \(\in [l, r]\) 的点,能走到多少种颜色。 考虑建出点分树。一个结论是原树上的一个连通块,一定存在一个点,使得它在点分树上的子树完全包含这个连通块的所有点。证明考虑点分治的过程,一个连通块如果没被其中一个点剖开就一定在同一个子树 阅读全文
posted @ 2023-12-29 22:01 zltzlt 阅读(23) 评论(0) 推荐(0)
摘要:洛谷传送门 类比 P9062 [Ynoi2002] Adaptive Hsearch&Lsearch 处理区间最近点对的思路,尝试只保留可能有贡献的点对。 处理树上路径容易想到点分治。设点 \(u\) 到分治中心的距离为 \(a_u\)。我们有 \(\text{dis}(u, v) \le a_u 阅读全文
posted @ 2023-12-28 18:49 zltzlt 阅读(46) 评论(0) 推荐(0)
摘要:洛谷传送门 POJ 传送门 一眼点分治。 当递归到结点 $u$ 时,计算出子结点 $v$ 的子树内,所有结点和 $u$ 的距离。然后与之前的合并并计算答案即可。使用树状数组,时间复杂度 $O(n \log n \log k)$,空间复杂度 $O(n + k)$。 code /* p_b_p_b tx 阅读全文
posted @ 2022-07-26 20:20 zltzlt 阅读(60) 评论(0) 推荐(0)
摘要:点分治是一种处理树上路径相关问题的好方法。 先来一道题:洛谷 P3806 【模板】点分治1 暴力枚举显然是是 $O(n^2)$,考虑使用点分治。 对于任意两点的路径,显然只有两种: 经过根结点 $root$ 不经过根结点 $root$ 对于情况 $1$ 的路径长度是很好算的,$\mathrm{dis 阅读全文
posted @ 2022-07-26 19:01 zltzlt 阅读(40) 评论(0) 推荐(0)