强连通与双连通图

本文探讨了如何通过增加最少数量的边将任意图转换为强连通图或双连通图的方法。对于强连通图,所需边数等于入度或出度为0的节点数的最大值;对于双连通图,则为度为1的节点数加1后除以2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

在原图上至少加几条边,才能使其变成强连通图或者双连通图?假设答案为n

强连通图:

1.当原图本身就是强连通图时,n=0
2.当原图不是强连通图时,对其重新建图(缩点之后的图),分别计算新图的入度和出度,需要加的边的数量即为,入度和出度为0的数量的最大值。
n=max(count(indegree== 0),count(outdegree== 0))

双连通图:

1、原图是双连通图,n=0
2、原图非双连通图,对其重新建图(缩点之后的图),计算新图每一点的度(出度和入度之和),需要加的边的数量即为入度为1的边的数量+1再除以2
n=(count(degreee==1)+1)/2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值