判断链
- 每个点的度数不超过2
判断树
- n个点,n-1条边
- 每两个点之间的路径唯一
多叉树转换成二叉树
第一个孩子作为左孩子,第一个孩子的兄弟作为它的右孩子。
树的重心
树上一点,满足删除该点时,树内剩下的子树最大节点数最小。
性质
1、树的重心每棵子树的大小一定小于等于\(n/2\)
2、每颗子树的大小都小于等于\(n/2\)的点一定是这棵树的重心(就是上一个的逆定理)
3、树中所有点到某个点的距离和中,到重心的距离和最小(如果有两个重心,他们的距离一样)
证明:我们考虑使用调整法,设当前最优决策为u点,v为u的任意相邻节点。记size(x)为当u为整棵树的根时,以x为根的子树的节点的大小。
u为全局最优决策当且仅当\(n-size(v)\ge size(v)\),否则最优策略一定在不满足该条件的v的子树中。
我们化简这个式子,即\(size(v)\le n/2\)
由定理2得,该点为树的重心。
4、两棵树通过一条边相连成为一颗新的树,新树重心一定在原来两棵树得重心的路径上。(注意中心不止一个的情况)
例题:cf civilization
怎么找重心?
方法1:处理出每个节点的