1.SLF 就够了
2.判负环不要用松弛次数大于点数这种判断方法,会被卡,请使用最短路上点的个数大于点数这种判断方式判负环
像这样
if(dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
d[v]=d[u]+1;
if(d[v]>n+m){
puts("NO");
return;
}
if(!inq[v]){
if(!q.empty()&&dis[v]<dis[q.front()]) q.push_front(v);
else q.push_back(v);
inq[v]=1;
}
}