tarjan

原创 2016年08月30日 14:05:24
void tarjan(int u)
{
    dfn[u]=low[u]=++stamp;
    used[u]=1;//进栈
    s.push(u);
    for(int i=0;i<graph[u].size();i++)
    {
        int v=graph[u][i];
        if(used[v]==0)
        {
            tarjan(v);//如果没有入栈,则dfs
            low[u]=min(low[u],low[v]);
        }
        else if(used[v]==1)
        {
            low[u]=min(low[u],low[v]);//当我们遇到一个在栈里的节点时,这个节点要么是强连通分量里的一个点,要么是那个low[u]==dfn[u]的点,此时碰到的点肯定能形成强连通分量,其low也是那个原点。
        }
    }
    if(low[u]==dfn[u])
    {
        int temp=0;
        while(s.top()!=u)
        {
            used[s.top()]=-1;//入栈又出栈的点,以后再也不能访问
            s.pop();
            temp++;
        }
        used[s.top()]=-1;
        s.pop();
        temp++;
        }
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

强连通分量之tarjan算法

强连通分量问题通常可归纳为要求出强连通分量,然后通过缩点(将得出的每个连通分量视为一个点,然后继续构图,例如连通分量A有一个点有一条边指向连通分量B的一个点,那么在A上搭一条边到B,其他连通分量也以此...
  • HuangLianzheng
  • HuangLianzheng
  • 2010年07月22日 16:18
  • 8061

tarjan算法原理介绍

证明比较繁琐,仔细检查了应该没有大错,记录一下证明过程。 强连通分量定义: 在有向图中,强连通分量的定义是:有向图的某个子图,其中任意两个点之间可以互达。 强连通分量的定理: 定理1:...
  • zakheav
  • zakheav
  • 2015年06月09日 11:22
  • 2219

【模板】LCA Tarjan算法 (模板题:洛谷P3379)

题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入输出格式 输入格式: 第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来N...
  • zj_yuneng
  • zj_yuneng
  • 2017年05月27日 07:48
  • 216

[hdu1269]Tarjan裸题

迷宫城堡Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi...
  • youhavepeople
  • youhavepeople
  • 2017年03月29日 09:09
  • 297

关于tarjan算法的一些理解(割点割边)

首先介绍以下tarjan算法: ---------------------------------------------tarjan算法------------------------------...
  • qq_24451605
  • qq_24451605
  • 2015年07月20日 06:44
  • 2123

浅谈Tarjan算法求LCA

Tarjan是一个很厉害的人,不少算法(包括一些数据结构比如splay)都是他发明的…Tarjan求LCA是利用并查集的思想进行操作的首先我们有如下的思路void Tarjan(int u){ ...
  • NOIAu
  • NOIAu
  • 2017年07月02日 09:40
  • 525

震惊!史上最全的tarjan模板!99%的人都不知道!

tarjan
  • chai_jing
  • chai_jing
  • 2017年04月12日 21:16
  • 345

消息扩散(Tarjan算法缩点处理)

P2002 消息扩散 题目概述 给定一张有向图,不保证无自环与重边,信息从某几个节点出发,沿单向路传播,现在给出n个节点及其之间的道路,问至少需要在几个节点发布信息才能让这所有节点都得到信息。 ...
  • Stockholm_Sun
  • Stockholm_Sun
  • 2017年08月11日 10:33
  • 207

Tarjan算法流程和简要证明

声明:一下许多内容摘自: 北京大学暑期课《ACM/ICPC竞赛训练》强连通分支、桥和割点 北京大学信息学院 郭炜不建议初学者直接看这篇博文 可以先了解一下Tarjan算法的具体流程,再来看证明。 ...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2017年05月07日 10:16
  • 348

Tarjan算法求解一个无向图中的割点和桥问题

基本概念割点:Articulation Point 在无向连通图中,删除一个顶点v及其相连的边后,原图从一个连通分量变成了两个或多个连通分量,则称顶点v为割点,同时也称关节点(Articulatio...
  • starstar1992
  • starstar1992
  • 2016年10月27日 13:29
  • 1536
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tarjan
举报原因:
原因补充:

(最多只允许输入30个字)