树的直径与树的重心
Posted adelalove
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树的直径与树的重心相关的知识,希望对你有一定的参考价值。
树的直径
树的直径是指树上的最长简单路。
直径的求法:两遍搜索
任选一点w为起点,对树进行搜索,找出离w最远的点u。
以u为起点,再进行搜索,找出离u最远的点v。
则u到v的路径长度即为树的直径。
----------------------------------------------------------------
树的重心
树的重心:
找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心。
删去重心后,生成的多棵树尽可能平衡。
树的重心可以通过简单的两次搜索求出,第一遍搜索求出每个结点的子结点数量son[u],第二遍搜索找出使max{son[u],n-son[u]-1}最小的结点。
实际上这两步操作可以在一次遍历中解决。
对结点u的每一个儿子v,递归的处理v,求出son[v],然后判断是否是结点数最多的子树,
处理完所有子结点后,判断u是否为重心。
以上是关于树的直径与树的重心的主要内容,如果未能解决你的问题,请参考以下文章