100 #P1127. *【树形DP:树的重心】树的重心

*【树形DP:树的重心】树的重心

【题意】

给定一棵树,树中包含 nn 个结点(编号1 n1~n)和 n1n-1条无向边。

请你找到树的重心,并输出重心删除后,剩余各个连通块中点数的最大值。

定义

如果在树中选择某个节点并删除,这棵树将分为若干棵子树,统计子树节点数并记录最大值。取遍树上所有节点,使此最大值取到最小的节点被称为整个树的重心。

(这里的「子树」若无特殊说明都是指无根树的子树,即包括「向上」的那棵子树)

性质(拓展学习)

树的重心如果不唯一,则至多有两个,且这两个重心相邻。 以树的重心为根时,所有子树的大小都不超过整棵树大小的一半。

树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么到它们的距离和一样。

把两棵树通过一条边相连得到一棵新的树,那么新的树的重心在连接原来两棵树的重心的路径上。

在一棵树上添加或删除一个叶子,那么它的重心最多只移动一条边的距离。

【输入格式】

第一行包含整数 nn,表示点的个数。

接下来 n1n-1 行,每行包含两个整数 ai,bia_i,b_i,表示点 aia_ibib_i 之间存在一条 的边(1n1051 \le n \le 10^5

【输出格式】

输出一个整数,表示删除重心后最大一个连通块的点数。

9
1 4
1 2
2 6
2 5
6 3
6 7
7 9
7 8
4