【数学】树的重心的性质及其证明

定义:

树的重心有很多等价定义,我们采用这样的定义:树的重心指,该点是使得最大子树的节点个数最小的那个点。设树的节点个数为 n n n

性质1:

u u u是树的重心,当且仅当其最大子树的节点个数小于等于 ⌊ n / 2 ⌋ \lfloor n/2\rfloor n/2
证明:
先证 ⇒ \Rightarrow 。如果 u u u是重心,但是其最大子树的节点个数大于 ⌊ n / 2 ⌋ \lfloor n/2\rfloor n/2,那么考虑该子树的树根 v v v。设 s [ x ] s[x] s[x] x x x子树的大小,那么 s [ v ] > ⌊ n / 2 ⌋ , n − s [ v ] < ⌊ n / 2 ⌋ < s [ v ] s[v]>\lfloor n/2\rfloor,n-s[v]<\lfloor n/2\rfloor<s[v] s[v]>n/2,ns[v]<n/2<s[v],从而以 v v v为树根,其最大子树的大小一定是小于 s [ v ] s[v] s[v]的,与 u u u为重心矛盾。
再证 ⇐ \Leftarrow 。如果 u u u的最大子树的节点个数小于等于 ⌊ n / 2 ⌋ \lfloor n/2\rfloor n/2,但 u u u不是重心,假设 v ≠ u v\ne u v=u v v v是重心,考虑 v v v的含 u u u的那棵子树,从 u u u的角度看,其最大子树的节点个数小于等于 ⌊ n / 2 ⌋ \lfloor n/2\rfloor n/2,所以去掉 u u u v v v那条路径的 u u u剩余子树的节点和是大于等于 n − 1 − ⌊ n / 2 ⌋ n-1-\lfloor n/2\rfloor n1n/2,从而 v v v的含 u u u的那个子树的大小是大于等于 n − ⌊ n / 2 ⌋ n-\lfloor n/2\rfloor nn/2。如果 n n n为奇数,则 n − ⌊ n / 2 ⌋ > ⌊ n / 2 ⌋ n-\lfloor n/2\rfloor>\lfloor n/2\rfloor nn/2>n/2,与 v v v是重心矛盾。如果 n n n是偶数,只有在 u u u v v v的最大子树的节点个数都等于 n / 2 n/2 n/2并且 u u u v v v相连的时候才不矛盾,此时这两个点都是重心。以上面证明可证此种情况不存在其他重心。

推论:

只有节点个数不唯一的时候才可能有两个重心,并且重心最多两个。当重心有两个的时候,它们是相邻节点。重心的最大子树的节点个数是确定的。

性质2:

d [ u ] d[u] d[u]是所有点与 u u u的距离之和(假设边权都为 1 1 1),那么当且仅当 u u u是重心的时候 d [ u ] d[u] d[u]最小。
证明:先证 ⇐ \Leftarrow 。假设 v v v使得 d [ v ] d[v] d[v]最小,并且 v v v不是重心,那么 v v v有一棵子树的大小是大于 ⌊ n / 2 ⌋ \lfloor n/2\rfloor n/2的,如果将 v v v向那棵子树挪动一步,则 d [ v ] d[v] d[v]一定会变小,矛盾。所以如果 d [ v ] d[v] d[v]最小,那么 v v v一定是重心。
再证 ⇒ \Rightarrow 。如果 d [ u ] d[u] d[u]不是最小,设有另外一个点 v v v使得 d [ v ] d[v] d[v]最小,那么由性质 1 1 1 v v v是重心,但 u u u也是重心,如果重心唯一,这就矛盾了。如果重心不唯一,由上面推论, n n n是偶数, u u u v v v相邻并且两个点的最大子树的节点个数都等于 n / 2 n/2 n/2,那么 d [ u ] = d [ v ] d[u]=d[v] d[u]=d[v],也矛盾。所以如果 u u u是重心, d [ u ] d[u] d[u]一定最小。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值