问题描述:
解题思路:
我们首先假设存在这么一个不少于三个点的环,那么他肯定是由这么至少三个点组成的:
- k k k 点,环中编号最大的点。
- i i i 点和 j j j 点,图中与 k k k 直接相连的两个不相同的点。
他们的大概结构如图:

此时,若这三个点共环,那么肯定存在一条 i ∼ j i\sim j i∼j 的路径,使得 i − > j i~~->j i −>j。

同时,肯定存在各一条边使得 k − > i k~~->i k −>i 以及 j − > k j~~->k j −>k

知道了环中三点的关系,我们就能通过枚举 k i j k~~~i~~~j k i j 来求出所有环的大小。
设 g i , j g_{i,j} gi,j

本文介绍了一种使用Floyd算法寻找带权图中最小环的方法。通过枚举环中最大节点及与其相邻的两个节点,计算所有可能环的大小,并找出最小值。文章详细解释了为何选择与最大节点直接相连的点,并提供了完整的代码实现。
最低0.47元/天 解锁文章
3508

被折叠的 条评论
为什么被折叠?



