Day6(树上问题)

 树的重心

定义:将树上某点删掉后,剩下的子树大小最小。

性质:1)树的重心的每棵子树大小一定小于等于n/2

           2)每棵子树大小一定小于等于n/2的点一定是树的重心->最多有2个点为重心且相邻

           3)树中所有点到某点的距离和中,到重心的距离和最小。(如果有2个重心,距离和一样)

           4)两棵树通过一条边相连成为一棵新树,新树重心一定在原来两棵树的重心的路径上。(证明:调整法)

找重心方法:

1)正常方法

2)调整法,从一个点出发,以该点为根,看儿子子树有没有大于等于n/2的,有就向下走,只到不能走了为止。

CF468D Tree https://www.cnblogs.com/wifimonster/p/10227588.html

AT2673 Tree and Hamilton Pat https://www.cnblogs.com/wifimonster/p/10227595.html

树的直径

定义:最长的简单路径

一棵树的直径可有若干条,这些直径两两相交且所有直径的交集非空

性质:1)从树上一点出发走最长路径,路径终点必为一条直径的一个端点

           2)两棵树用一条边合并,新树直径两端顶点一定是原本两树两条直径四个端点中的两个(不考虑多条直径)

           3) 对于两条相交的直径,它们不相交部分一定对称

AT2061 Tree Restoring https://www.cnblogs.com/wifimonster/p/10227601.html

 

[COCI2008]道路重组

遍历序列&树链剖分

对于一个图,遍历过程中经过的点的序列就是它的遍历序,如BFS序、DFS序、欧拉序等等。
我们主要讨论的是欧拉序,DFS序和括号序。

欧拉序:从根节点开始dfs遍历树——在点x时,走到一个未遍历过的儿子,或者儿子已经全部遍历过从x返回到父亲,以此法得到的遍历序列是欧拉序。
DFS序:从根节点开始dfs遍历树,一个节点第一次被遍历到时加入到序列内,以此法得到的遍历序列是DFS序。
括号序:从根节点开始dfs遍历树,一个节点第一次被遍历或遍历完儿子要退出时将其加入到序列内,以此法得到的遍历序列是括号序。

欧拉序:
1 2 5 8 5 9 10 9 11 9 12 9 5 2 6 2 1 3 1 4 7 4 1               
DFS序:
1 2 5 8 9 10 11 12 6 3 4 7
括号序:
1 2 5 8 8 9 10 10 11 11 12 12 9 5 6 6 2 3 3 4 7 7 4 1

 

 POJ3321 苹果树

GDKOI2015 树

果树

[LNOI2014][BZOJ3626]LCA

原文地址:https://www.cnblogs.com/wifimonster/p/10227091.html