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

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

点击右上角即可分享
微信分享提示