摘要: 点分治 树的重心(前置芝士) 如果在树中选择某个节点并删除,这棵树将分为若干棵子树,统计子树节点数并记录最大值。取遍树上所有节点,使此最大值取到最小的节点被称为整个树的重心。 性质 树的重心如果不唯一,则至多两个且相邻 以树的重心为根时,所有子树的大小都不超过整棵树大小的一半 树中所有点到某个点的距 阅读全文
posted @ 2024-05-10 13:47 XiaoFeng0432 阅读(1) 评论(0) 推荐(0) 编辑
摘要: LCA Tarjan(离线) 实现 任选一个点为根节点,从根节点开始遍历(DFS) 遍历该点u所有子节点v,并标记已访问过 如果v有子节点,返回2 合并v到u,可以使用并查集 寻找与当前点u有询问关系的点s 如果s被访问过了,那么u和s的LCA为s的父亲节点a 伪代码 : Tarjan(u){ fo 阅读全文
posted @ 2024-05-08 23:58 XiaoFeng0432 阅读(7) 评论(0) 推荐(0) 编辑
摘要: DFS序 题目链接:DFS序2 DFS序 其实是利用时间戳按照DFS访问顺序对每个节点标号 in[p] : 以p(节点编号)为根节点的子树的开头 out[p] : 以p(节点编号)为根节点的子树的结尾 ​ 例 : in[1] = 4, out[1] = 8, 代表以节点编号1为根节点的子树, DFS 阅读全文
posted @ 2024-05-08 17:21 XiaoFeng0432 阅读(2) 评论(0) 推荐(0) 编辑