可能的原因是,你的 SPFA 算法使用了点的入队次数来检验负环,当一个点入队超过 nnn 次就认为存在负环。
这种算法是正确的,但是!
这种方法要求图没有重边!虽然最短路不要求无重边,但如果有重边,一个点就可能被同一起点、终点的不同边多次松弛,导致入队次数统计错误,#11 就用重边把这种算法卡了。
修改方法,可以是建图时预先去重,也可以改用记录路径长度的方法判断负环,参考 最短路 - OI Wiki,这种方法不要求无重边。