树的直径,重心和基环树(2019.2.3)

基本概念(树的直径):

   树是图论中的连通无环图,树上的任意两点间的路径是唯一的。树上的任意两点的距离是两点间路径的边权和。而树的直径(假设为MP)是树上的最长路径,M,P两点是树上距离最远的点。

算法(树的直径):

   两次BFS或DFS:从树上的的任意一点C出发找到离它最远的一个点A,再从点A开始寻找离它最远的点B,AB的距离就是树的直径。

证明:只需要证明M点是树的直径的一个端点,那么MP就是树的直径了。通过反证法,假设M不是端点,AB才是树的直径。那么

  

    1.如果P是AB上的点,PM>PB,如图树的直径,重心和基环树(2019.2.3)_第1张图片,则AM>AB,假设不成立。

     2.树的直径,重心和基环树(2019.2.3)_第2张图片MP和AB间有公共点T,PT + TM > PT + TB,则TM > TB,则AM>AB,假设不成立。

     3.树的直径,重心和基环树(2019.2.3)_第3张图片AB与MP平行,点PC + CM > PC + CD + BD,则CM > CD + BD,

你可能感兴趣的:(树的直径,重心和基环树(2019.2.3))