码迷,mamicode.com
首页 > 其他好文 > 详细

有向边tarjan

时间:2019-08-09 15:15:00      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:tar   class   sharp   oid   else   ack   for   false   bsp   

void tarjan(int u){
	dfn[u]=low[u]=++num;
	stack[++top]=u;
	instack[u]=true;
	for(int i=hd[u];i;i=bl[i].nt){
		if(!dfn[bl[i].to]){
			tarjan(bl[i].to);
			low[u]=minn(low[u],low[bl[i].to]);
		}
		else if(instack[bl[i].to])
			low[u]=minn(low[u],dfn[bl[i].to]);
	}
	if(dfn[u]==low[u]){
		int tan=stack[top];
		++tot;
		while(tan!=u){
			belong[tan]=tot;
			instack[tan]=false;
			tan=stack[--top];
		}
		belong[tan]=tot;
		instack[tan]=false;
	}
}

 

有向边tarjan

标签:tar   class   sharp   oid   else   ack   for   false   bsp   

原文地址:https://www.cnblogs.com/2018hzoicyf/p/11327123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!