随笔分类 -  点分治

摘要:题目大意:给你一颗n个节点的树,最初点集S为空。 有m次操作:往当前点集S中加入/删除一个点,询问点x至集合S中任意点的最小距离,回到第t次修改点集的操作后的状态。 数据范围:$n,m≤10^5$ 我们先无视这个可持久化的要求,考虑下不可持久化怎么做。 显然考虑动态树分治。 令点v为当前分治中心,u 阅读全文
posted @ 2019-03-19 08:27 AlphaInf 阅读(281) 评论(0) 推荐(1)
摘要:题目大意:有一棵$n$个节点的树,点的标号为$1$到$n$。树中的边有边权。给你$m$个询问,每个询问包含三个参数$l,r,pos$,你要求出标号在$l$到$r$之间的所有点中,到节点$pos$距离最近的点离$pos$有多远。 数据范围:$n,m,l,r,pos≤10^5$,强制在线。 此题我强制在 阅读全文
posted @ 2019-02-18 21:19 AlphaInf 阅读(250) 评论(0) 推荐(0)
摘要:题目大意:给你一棵n个点的树,树边上有边权,对于每一个点,你要求出经过该点的所有的路径中,路径异或和最大的值。 数据范围:$n≤10^5$,边权$≤10^9$。 我们考虑枚举每一条路径,显然这个是会T的,于是我们用点分治来实现这个过程。 对于一棵以$x$为根的子树,假设它有$k$个儿子,编号$v1. 阅读全文
posted @ 2018-10-18 21:36 AlphaInf 阅读(201) 评论(0) 推荐(0)
摘要:题目大意:给你一棵$n$个点的带权树和正整数$K$,求每个点到其它所有点距离中第$K$大的数值。 其中,边权$≤10000$,$n≤50000$。 我们通过原树构建一棵点分治树,令$fa[u]$为$u$在点分树上的$father$。 对于每个点$u$,我们维护两个有序数组$f$和$g$。 其中$f[ 阅读全文
posted @ 2018-10-16 21:37 AlphaInf 阅读(192) 评论(0) 推荐(0)
摘要:题目大意:给你一棵$n$个点的树,每个点有一个点权$x$,问你所有路径中点权异或和最大的路径的异或和 数据范围:$n≤30000$,$x≤2^{31}-1$。 如果是边上有点权的话非常简单,直接一个$trie$就可以水过去了。 然而这题是点权,非常烦人。我们考虑用点分治去解决。 假设当前需要遍历的树 阅读全文
posted @ 2018-07-29 11:20 AlphaInf 阅读(467) 评论(0) 推荐(3)