rt,想问下vis数组不加会不会死循环?
好多最短路用spfa写,我都发现没有这个vis数组,遂提问
bool spfa(){ //判负环
memset(d,0x3f,sizeof d);
memset(vis,0,sizeof vis);
memset(cnt,0,sizeof cnt);
queue<int>q;
q.push(1);// vis[1]=1;
d[1]=0;
while(q.size()){
int u=q.front();q.pop();//vis[u]=0;
for(auto i:e[u]){
int v=i.v1;
if(d[v]>d[u]+i.w1){
d[v]=d[u]+i.w1;
//if(!vis[v])
q.push(v)//vis[v]=1;
}
}
}
return 0;
}