原文:树的直径、树的重心与树的点分治

树的直径 树的直径 Diameter 是指树上的最长简单路。 直径的求法:两遍搜索 BFS or DFS 任选一点w为起点,对树进行搜索,找出离w最远的点u。 以u为起点,再进行搜索,找出离u最远的点v。则u到v的路径长度即为树的直径。 简单证明: 如果w在直径上,那么u一定是直径的一个端点。反证:若u不是端点,则从直径另一端点到w再到u的距离比直径更长,与假设矛盾。 如果w不在直径上,且w到其距 ...

2014-08-08 12:14 0 5138 推荐指数:

查看详情

直径重心

1.直径 树上最长的简单路径即为直径。 求直径的方法就是在树上任选一u,求距离u最远的y,再求距离y最远的s,y到点s的距离即为直径。 View Code 2.重心 若有一,其所有子树中最大子树的节点数最少,则该 ...

Fri May 05 05:05:00 CST 2017 1 3394
直径重心、中心

直径 直径,是指树上最长的一条链。 求直径有两种方法 \(1.DP\):\(d1[u]\)表示\(u\)到达子树中叶子节点的最长链,\(d2[u]\)表示\(u\)到达子树中叶子节点的次长链,两条链不能有交集,只需要对每个节点做以下更新同时维护最大值最小值即可 这样维护保证 ...

Thu Oct 24 00:04:00 CST 2019 0 582
关于重心

(由于本人太菜所以最近一直在补一些基础算法……) 求重心的基本思想就是从每个节点出发分别遍历一遍,统计max_part,其中能够使得max_part最小的就是重心 另外:一棵有根至多有两个重心,这个结论好像有些题可以用(比如BZOJ4337,不过那个数据太水只有50(什么暴力乱搞 ...

Sat Oct 06 22:24:00 CST 2018 0 2312
重心

先任选一个节点作为根,将无根转换成有根,代码实现是DFS。 以图9-13的节点i为例,因为是任意选择一个节点做DFS,有以下几种可能: 1.以节点i为根节点,有三个子树 2.以左下方节点为父节点,访问节点i,有两个子树 3.以右下方节点为父节点,访问节点i,有两个子树 4. ...

Tue Sep 13 17:05:00 CST 2016 0 4670
直径方法总结

直径长度是 1 ,但我们从图中很容易看出来直径最长 应该是 2.(用树形 DP 的话从下向上就可以得 ...

Tue Jan 28 01:27:00 CST 2020 0 1175
浅谈直径

浅谈直径 定义:   直径指树上最长链(最远点对) 求解:   直径存在两种求解方式均为O(n)复杂度,其各有优劣 1.贪心法   任取一作为起点,找到树上距离该的最远点,记作st,再以st为起点,找到树上距离st最远的,记作ed,st至ed即为直径 ...

Tue Jul 16 00:31:00 CST 2019 0 534
直径算法

直径算法 标签: 图论——直径 阅读体验:https://zybuluo.com/Junlier/note/1251025 直径 直径是树上的最长路 求法:2遍\(Dfs(Bfs)\) 没错,真的这么简单...... 先随便找个i开始\(Dfs ...

Thu Aug 16 01:36:00 CST 2018 0 1335
(图论)直径

引言 作为一种特殊的图,具有很多良好的性质,直径便是其中之一。 定义 直径有许多相近的定义。但由于没有找到比较权威的定义,就用自己的语言大概表述一下吧。 对于一棵带非负边权的,定义两间距离为两间路径的边权之和,直径就是距离最远的两之间的路径,同时也称该距离为直径 ...

Sun Feb 24 01:43:00 CST 2019 0 774
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM