观光之旅
蓝书求最小环的思路,就是说我们要保证遍历所有的环
那么怎么保证遍历所有的环呢?我们就要给每个环选一个代表元素,由于\(k\)(阶段)是很特殊的,所以我们选择\(k\)当代表元素,而且让\(k\)最大,然后就不难想到蓝书上的做法
注意一定要在floyd算法执行之前进行ans的更新
当然也可以把\(k\)当做一个环的第三大值,然后枚举每一条边\((i,j)\),如果\(i,j\)都大于\(k\),那么尝试更新答案
然后代码里面求最短路路径的方法要记住
这里主要是讲一下有向图的最小环问题像蓝书这么求解为什么是对的
其实在更新完后,我们可以认为每个被更新过的节点都是起点,相当于做了一个多起点的dij了
显然也是正确的
但是注意这种方法算出来的环可能只有两个点了