spfa记录路径

记录录路径:开一个pre数组,在每次松弛bai边的时候(就是在执行duif d[j]+cost[k]<d[i] then d[i]:=d[j]+cost[k]的时候),这时如果d[i]被更新了,就将pre[i]:=j,表示当前到zhii点的最短路dao径中,j是i的前驱结点。在做完spfa时,
对于结点i,不断地i:=pre[i]直到i=源点,这途中的点即为路径。

判断负权环:因为用了队列版维护d数组,如果i结点入队次数大于等于n次,则有负权权环