请问下spfa的vis数组的作用
  • 板块学术版
  • 楼主呆呆的她啊
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/1/6 16:38
  • 上次更新2024/1/6 16:47:28
查看原帖
请问下spfa的vis数组的作用
226167
呆呆的她啊楼主2024/1/6 16:38

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;
}
2024/1/6 16:38
加载中...