首页 > 其他分享 >tarjan模板

tarjan模板

时间:2023-08-13 19:13:15浏览次数:31  
标签:tarjan int scc ins dfn low 模板

il void tarjan(int u)
{
	dfn[u]=low[u]=++num,st[++top]=u,ins[u]=1;
	G(i,u)
	{
		int v=ver[i];
		if(!dfn[v])
		{
			tarjan(v);
			low[u]=min(low[u],low[v]);
		}
		else if(ins[v]) low[u]=min(low[u],dfn[v]);
	}
	if(dfn[u]==low[u])
	{
		int t=0;
		cnt++;
		do
		{
			t=st[top--];
			scc[t]=cnt;
			……
			……
			…… 
			ins[t]=0;
		}while(u!=t);
	}
}
il void solve()
{
	F(i,1,n) if(!dfn[i]) tarjan(i);
	memset(head,0,sizeof(head));
	memset(nxt,0,sizeof(nxt));
	tot=0;
	F(i,1,m) if(scc[x[i]]!=scc[y[i]]) add(scc[x[i]],scc[y[i]]);
}

标签:tarjan,int,scc,ins,dfn,low,模板
From: https://www.cnblogs.com/MooSheng/p/17627004.html

相关文章

  • 最大流模板
    需要注意的是要ll就全ll,不然要出事。structFlow{lltot=1,hd[N],ne[M],to[M],lim[M];voidAdd(intx,inty,llz){ne[++tot]=hd[x];hd[x]=tot;to[tot]=y;lim[tot]=z;ne[++tot]=hd[y];hd[y]=tot;to[tot]=x;lim[tot]=0;}llT,dis[......
  • 模板
    1.线性筛模板voidget_primes(intn){for(inti=2;i<=n;i++){if(!st[i])primes[cnt++]=i;for(intj=0;primes[j]<=n/i;j++){st[primes[j]*i]=true;if(i%primes[j]==0)break;......
  • 【模板】modint
    modintbycjlstructm{ intx;m(into=0){x=o;}m(lllo){x=o%mod;}m&operator+=(ma){return(x+=a.x)%=mod,*this;}m&operator-=(ma){return(x+=mod-a.x)%=mod,*this;} m&operator*=(ma){return(x=1ll*x*a.x%mod),*this;}m&operator^=(intb){ma=*thi......
  • VUE使用模板页面并预留子页面区域
    1.新建模板页面MainLayout.vue,并在template里面防止标签用于嵌入子页面内容<template>'''其他页面内容'''<router-view></router-view>'''其他页面内容'''</template>2.在router的index.js中设置子路由,其中DailyData......
  • tzoj1471 wall(凸包模板题)
    题目大意n个点构成的城堡,给出每个点的坐标。若要修建距离城堡最近距离为L的城墙,问城墙的最短长度。凸包模板题,用Andrew算法求出凸包然后加上半径为L的圆的周长即可。Andrew算法首先对所有点按照y大小进行升序排序,如果y相同就按照x大小升......
  • 最小生成树模板
    prim算法算法思想:每次选定未进入集合中和集合距离最小的点,用该点更新其他点到集合的距离,直到可以判断出不存在最小生成树或所有点均已进入集合下面虽然是两种写法,但是记忆时最好还是按照算法的思路来实现,也就是第2个代码。虽然会多一些边界处理,但是只要我们理解了算法思想即使......
  • Tarjan 例题:洛谷P1407 [国家集训队] 稳定婚姻
    在洛谷中查看题意:自己读一下,大致就是\(2n\)个点,每个点编号为\(1-2n\),\(\lfloor编号/2\rfloor\)相同的点连条边。然后再给\(m\)条边。问:将每个\(\lfloor编号/2\rfloor\)相同的点间连的边断开,还能不能使每个编号为奇数的点都有一个编号为偶数的点对应。这个......
  • 算法模板
    【DFS】classSolution{public:intn;intpath[10000];boolst[10000];voiddfs(intu){if(u==n){for(inti=0;i<n;++i)cout<<path[i]<<"";cout<<endl;return;......
  • 基于模板匹配算法的车牌数字字母识别matlab仿真,带GUI界面
    1.算法理论概述       随着交通工具的普及,车辆数量快速增长,车辆管理变得越来越重要。在车辆管理中,车牌号码的自动识别是一个重要的环节。从传统的手工识别,到现在的自动化识别,车牌识别技术已经成为了一个热门的研究领域。其中,数字字母识别是车牌识别的重要组成部分。本文......
  • SOLIDWORKS工程图模板制作
    为什么要制作工程图模板SOLIDWORKS软件以其优良的技术和市场表现,成为CAD领域一颗耀眼的明星,拥有强大的功能。为了实现更规范、更快捷、更方便、更准确的绘图,制作工程图模板是必要的。SolidWorks工程图的优势在于零件模型的尺寸与工程图相关联,只需修改模型尺寸,工程图中的尺寸也会相......