A1: 首先如果直接将边权除以二什么都不会影响。对于奇数我们做上取整相当于将边权增加了0.50.5,那么只要原来的图里没有负环,新的图里也不会有负环。这样我们就不会出现误判负环的情况。 Q2: 你没说上面算法的递归终点啊。 A2: 事实上上述操作的目的是将边权都变成非负的。注意到⌈−12⌉=0⌈−12⌉=0,事实
那么我们又该如何判断负环呢? 我们有一种最为稳定的办法(不会被某些特殊数据hack掉) 即维护一个入队次数的数组,注意是入队次数,只有能被松弛且不在队列中才有机会入队。 如果一个点的入队次数大于n-1说明一定存在负环。 #include<bits/stdc++.h>usingnamespacestd;#defineint long longconstintN=100005;intt,...