在算法SPFA中,数组“cnt”用于判断负环
当没有负环时,从任意一个顶点出发到其余所有顶点的单源最短路径的边数不会超过n-1。因此,如果算法运行到某个节点v时,cnt[v]的值已经大于等于n,那么说明从起点到v的路径上必定存在环,且该环中至少包含n条边,即存在负环。
因此,将判断条件从“if(cnt[v]>n)”改为“if(cnt[v]>=n)”是正确的,并不影响算法的正确性。这样修改后,如果存在负环,算法会在第n次松弛操作时就返回true,而不是等到第n+1次松弛操作才返回。