最小树形图 之 朱刘算法【模板】

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

定义:一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图。



朱刘算法实现过程: 【在选出入边集后(看步骤1),若有向图中不存在有向环,说明该图就是最小树形图】


1,选入边集——找到除root点之外,每一个点的所有入边中权值最小的,用数组in[]记录下这个最小权值,用pre[]记录到达该点的前驱;(若图中存在独立点,最小树形图是不存在的,所以在该步骤结束后,要判断一下)

2,找有向环,并用数组id[]记录节点所属环的编号。

3,找到环后,缩点,并更新权值。(感觉和SCC缩点差不多吧)

4,以环数为下一次查找的点数,继续执行上述操作,直到没有环 或者 判定出不存在最小树形图为止。



<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值