最小环

最小环

在一个图中,求一个由不少于3个点构成的最小环

无向图

求环的长度就是求两点加上中间任意一个松弛点的距离和,即(dis[i][j]+val[i][k]+val[k][j]),要得到(dis[i][j]),可以使用最短路算法求解

由于要保证(dis[i][j])经过的点集中一定不含有k,可以利用floyd算法的特性,在大循环内先找环再松弛,由于每次松弛后得到的最短路中才含有k,这个环一定是合法的

还有一种方法是利用dijkstra算法来的,枚举每一条边,再分别求两个端点的最短路,这个方法适用于求指定点/边的最小环

有向图

有向图在此并没有什么本质区别,连边的时候改一下就可以了

原文地址:https://www.cnblogs.com/nebulyu/p/12971454.html