#include <algorithm>
#include <cstdio> using namespace std; const int N();
int n,m,v,u;
int edgesum,head[N]; struct Edge
{
int from,to,next;
Edge(int from=,int to=,int next=) :
from(from),to(to),next(next) {}
}edge[N];
int ins(int from,int to)
{
edge[++edgesum]=Edge(from,to,head[from]);
return head[from]=edgesum;
} int dfn[N],tim,low[N],vis[N];
int Stack[N],top,instack[N];
int col[N],colsum; void DFS(int now)
{
dfn[now]=low[now]=++tim; vis[now]=;
Stack[++top]=now; instack[now]=;
for(int i=head[now];i;i=edge[i].next)
{
int to=edge[i].to;
if(instack[to]) low[i]=min(low[i],dfn[to]);
else if(!vis[to])
DFS(to),low[i]=min(low[i],low[to]);
}
if(low[now]==dfn[now])
{
colsum++;
col[now]=colsum;
for(;Stack[top]!=now;top--)
{
col[Stack[top]]=colsum;
instack[Stack[top]]=;
}
instack[now]=;
top--;
}
} int main()
{
scanf("%d%d",&n,&m);
for(;m--;)
{
scanf("%d%d",&u,&v);
ins(u,v);
}
for(int i=;i<=n;i++)
if(!vis[i]) DFS(i);
return ;
}

Tarjan强联通分量【模板】的更多相关文章

  1. POJ 2186 Popular cows(Kosaraju+强联通分量模板)

    题目链接:http://poj.org/problem?id=2186 题目大意:给定N头牛和M个有序对(A,B),(A,B)表示A牛认为B牛是红人,该关系具有传递性,如果牛A认为牛B是红人,牛B认为 ...

  2. tarjan强联通分量(模板)

    #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #inc ...

  3. tarjan求强联通分量 模板

    void tarjan(int u) { dfn[u]=low[u]=++dfs_clock; stack_push(u); for (int c=head[u];c;c=nxt[c]) { int ...

  4. cf999E (强联通分量模板题)

    给出n个点m条边的有向图,问至少添加多少条边使得任何点都可以从s点出发可达 #include<bits/stdc++.h> #define forn(i, n) for (int i = ...

  5. tarjan模板 强联通分量+割点+割边

    // https://www.cnblogs.com/stxy-ferryman/p/7779347.html ; struct EDGE { int to, nt; }e[N*N]; int hea ...

  6. 【POJ 1236 Network of Schools】强联通分量问题 Tarjan算法,缩点

    题目链接:http://poj.org/problem?id=1236 题意:给定一个表示n所学校网络连通关系的有向图.现要通过网络分发软件,规则是:若顶点u,v存在通路,发给u,则v可以通过网络从u ...

  7. 强联通分量-tarjan算法

    定义:在一张有向图中,两个点可以相互到达,则称这两个点强连通:一张有向图上任意两个点可以相互到达,则称这张图为强连通图:非强连通图有极大的强连通子图,成为强联通分量. 如图,{1},{6}分别是一个强 ...

  8. 【强联通分量缩点】【Tarjan】bzoj1051 [HAOI2006]受欢迎的牛

    就是看是否有一些点,从其他任何点出发都可到达 定理:有向无环图中唯一出度为0的点,一定可以由任何点出发均可达. 所以缩点,若出度为零的点(强联通分量)唯一,则答案为该强联通分量中点的度数. 若不唯一, ...

  9. 强联通分量(tarjan算法+算法简介)

    题目描述 ›对于一个有向图顶点的子集S,如果在S内任取两个顶点u和v,都能找到一条从u到v的路径,那么就称S是强连通的.如果在强连通的顶点集合S中加入其他任意顶点集合后,它都不再是强连通的,那么就称S ...

随机推荐

  1. Mysql 索引-1

    索引的类型 根据数据库的功能,可以在数据库设计器中创建四种索引:唯一索引.非唯一索引.主键索引和聚集索引. 索引的不同应用场景 场景 1. 当数据多且字段值有相同的值得时候用普通索引. 2. 当字段多 ...

  2. gcc 源代码分析-前端篇2

    2. 对ID及保留字的处理    在c语言中,系统预留了非常多keyword.也被称为保留字,比方表示数据类型的int,short,char,控制分支运行的if,then等. 不论什么keyword, ...

  3. [Java开发之路](7)RandomAccessFile类具体解释

    RandomAccessFile适用于大小已知的记录组成的文件.提供的对文件訪问.既能够读文件.也能够写文件,而且支持随机訪问文件.能够訪问文件的任何位置. 文件里记录的大小不一定都同样.仅仅要我们知 ...

  4. Java 零基础跑起第一个程序

    Java 零基础跑起第一个程序 一 概述 1  java代码编译 编译后才干在计算机中执行.编译就是把人能看懂的代码转换成机器能看懂的形式 2 java的长处 一次编译.到处执行.由于java代码是在 ...

  5. bzoj4032: [HEOI2015]最短不公共子串(SAM+DP)

    4032: [HEOI2015]最短不公共子串 题目:传送门 题解: 陈年老题良心%你赛膜爆嘎爷 当初做题...一眼SAM...结果只会两种直接DP的情况... 情况1: 直接设f[i][j] 表示的 ...

  6. thinkPHP5 报错session_start(): No session id returned by function解决方法

    这是因为用Redis接管了session状态储存,但是Redis又连接不正常导致的 在服务器上查看Redis运行状态一切正常,set.get也没有问题,最后琢磨了半天才发现是PHPRedis扩展没有安 ...

  7. 关于jquery文件上传插件 uploadify 3.1的使用

    要使用uplaodify3.1,自然要下载相应的包,下载地址http://www.uploadify.com/download/,这里有两种包,一个是基于flash,免费的,一个是基于html5,需要 ...

  8. [转]SQL Server 批量完整备份

    最近我们的服务器需要迁移,服务器上有很多数据库,有很多都不知道干什么的了,但是为了保险起见,我决定都备份下,起初我是右键一个一个备份的,备份三四个还好,可是数据库太多了,而且手动一步一步操作,还得修改 ...

  9. Memcache 一些经验和技巧

    Memcached一些特性和限制 在Memcache中可以保存的item数据量是没有限制的,只要内存足够. Memcache单进程最大使用内存为2g,要使用更多的内 -存,可以分多个端口开启多个Mem ...

  10. 理解z-index和css中的层叠顺序问题(大神技术博的读后感?)

    一直对 z-index不太理解,今天看到了大神的博客...http://www.zhangxinxu.com/wordpress/tag/z-index/ 1.层叠上下文:是一个名词!是一个性质!此时 ...