哪里错了
查看原帖
哪里错了
531811
luoguo0921楼主2022/10/3 13:16
void SPFA(){
		memset(vis1,0x3f,sizeof(vis1));
memset(vis2,0x3f,sizeof(vis2));
queue<int>q;
q.push(1);
vis2[1]=0;
vis1[1]=0;
while(q.empty()){

	int u=q.front();
	q.pop();
for(int i=head[u];i;i=bian[i].nt)
{int a=vis1[bian[i].to];
int b=vis2[bian[i].to];
vis1[bian[i].to]=min(a,vis2[u]+1);
vis2[bian[i].to]=min(b,vis1[u]+1);
if(a!=vis1[bian[i].to]||b!=vis2[bian[i].to])
q.push(bian[i].to);
}
}}
2022/10/3 13:16
加载中...