定义:一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图。
朱刘算法实现过程: 【在选出入边集后(看步骤1),若有向图中不存在有向环,说明该图就是最小树形图】
1,选入边集——找到除root点之外,每一个点的所有入边中权值最小的,用数组in[]记录下这个最小权值,用pre[]记录到达该点的前驱;(若图中存在独立点,最小树形图是不存在的,所以在该步骤结束后,要判断一下)
2,找有向环,并用数组id[]记录节点所属环的编号。
3,找到环后,缩点,并更新权值。(感觉和SCC缩点差不多吧)
4,以环数为下一次查找的点数,继续执行上述操作,直到没有环 或者 判定出不存在最小树形图为止。
给个图:

本文介绍了如何利用朱刘算法寻找有向图中的最小树形图。算法主要包括四个步骤:选择权值最小的入边,查找并记录有向环,缩点更新权值,直至无环或无法形成最小树形图。通过具体图示和代码注释,详细解析了算法的实现过程。
最低0.47元/天 解锁文章
7908





