有边数限制,只能用bellman-ford算法求解。
方法十分暴力,迭代 \(n\) 次,每次用所有边进行一次更新,当迭代了 \(k\) 次时,恰好经过了不超过 \(k\) 条边。而若第 \(n\) 次仍有,说明经过了 \(n\) 条边,而若无负环,至多经过 \(n-1\) 条边,所以说明存在了负环。
注意每次更新 dis 需要再上次的基础上进行,不能覆盖(即一次更新中出现1更新了2,2又用新值更新3,应该使用旧值)。
dis