前言
最近做题发现,树上问题有一些性质很重要,所以打算在这总结一下
性质
-
(RMQ) 求 (lca) :树上任意两点的 (lca) 一定是它们欧拉序中两点之间的深度最小的点
-
一棵树,求点 1, 2, 3, 4……多个点的 (lca) :求出有相邻两点的 (lca) 取深度最小的一个
-
树上判断 (a) 到 (b),(c) 到 (d) 两条路径是否相交:如果相交,记 (x=lca(a,b),y=lca(c,d)),则必有 (x) 在 (c-d) 路径上或 (y) 在 (a-b) 路径上
-
删除重心后所得的所有子树,节点数不超过原树的1/2,一棵树最多有两个重心;
-
删除树的重心之后,保证分得的 (max(两个子树 siz)) 最小
-
树上两点路径 = 两点深度和 - 两点 lca 的深度
待更新……