rt,想问下vis数组不加会不会死循环?
vis数组好多最短路用spfa写,我都发现没有这个vis数组,遂提问
bool spfa(){
memset(d,0x3f,sizeof d);
memset(vis,0,sizeof vis);
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;
cnt[v]=cnt[u]+1;
if(!vis[v])
q.push(v),vis[v]=1;
}
}
}
return 0;
}