有向边tarjan

Posted 2018hzoicyf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有向边tarjan相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

有向边tarjan

在networkx中添加多个有向边

给出一张DAG图,问最少加多少条有向边s.t.其强联通?

差分约束

前驱图

[luoguP1251] 餐巾计划问题(费用流)