首页 > TAG信息列表 > 原树

【题解/学习笔记】点分树

点分树 | 震波 \(\text{Solution:}\) 是点分树的模板,这里讲一讲点分树。 本质就是把点分治的每一层分治重心给记录下来了,自然就形成了一棵树,并且树高是 \(O(\log n)\) 的。这很显然。 那么,考虑点分治的过程,实际上就是从点分树从根往下计算答案的过程了。 如果我们要计算点 \(x\)

AcWing 346. 走廊泼水节

原题链接 考察:最小生成树 思路:           本题要求完成图的最小生成树依旧是原树.考虑Kruskal算法,每次都是选择当前边两端合并为一个集合,我们要保证为完全图的话需要让左右端点的集合两两之间连一条边,同时保证原树的边是当前集合最小的边.因为原边不能代替所以考虑取roa

【数据结构】LinkCutTree

和重链剖分的概念有点点像。或者应该叫做实链剖分。 LCT维护的“原树”并非是一棵树,而是一片森林。森林中的树可以切成各种形状的树,也可以把不同的树合并。LCT内部的“辅助树”也不是一棵树,而是一片(更大的)Splay森林。 原树是一棵有根树。支持以下操作: 1、对原树节点x和节点y的链更

树的重心的性质

1.删除重心后所得的所有子树,节点数不超过原树的1/2,一棵树最多有两个重心; 2.树中所有节点到重心的距离之和最小,如果有两个重心,那么他们距离之和相等; 3.两个树通过一条边合并,新的重心在原树两个重心的路径上; 4.树删除或添加一个叶子节点,重心最多只移动一条边

Kruskal 重构树

构造方法 对于一棵树 T ,建立一个 Kruskal 重构树。 首先创造新的节点,作为联通块的代表元,每个代表元初始时代表 T 中的一个节点。 然后按照某种自定义的顺序(为后文方便说明,这里直接当成边权大小)不重不漏枚举每一条边,对于当前边新建一个节点,然后合并当前边的两个端点所在的联通块的