有向图最小环问题

本文探讨了有向图中寻找最短环的问题,并解释了为何不能在有向图中重复利用边来形成环。文章提出了通过修改Dijkstra算法来解决这一问题的方法:在处理完起点后将其距离重置为无穷大,允许顶点被再次加入堆中,从而找到围绕该点的最短环。

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

有向图必须满足每一条边都是有向的,即若存在边x->y,就不能存在边y->x。这样的话,联想最短路,发现有向图如果一个点两次被遍历,那一定是成一环。并且,有向图最小环定义是不存在点数限制的,无向图之所以有约束,是避免把最短的一条边走两次。所以无向图只能使用floyd。

这段文字是我刚才咨询了lyd之后,总结出来的。

具体做法是,枚举每一个点,执行dijkstra算法,不同的是,处理完起点后,把起点的dis重新赋值﹢∞,并且可以被再次入堆。第二次取出这个起点时,他的dis值即为答案。(围着环转了一圈)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值