强联通模板

原创 2015年11月18日 14:20:07
vector<int> G[maxn];
int pre[maxn],lowlink[maxn],sccno[maxn],dfs_clock,scc_cnt;
stack<int > S;
void dfs(int u) {
    pre[u]=lowlink[u]=++dfs_clock;
    S.push(u);
    for(int i=0;i<G[u].size();i++) {
        int v=G[u][i];
        if(!pre[v]) {
            dfs(v);
            lowlink[u]=min(lowlink[u],lowlink[v]);
        }else if(!sccno[v]) {
            lowlink[u]=min(lowlink[u],pre[v]);
        }
    }
    if(lowlink[u]==pre[u]) {
        scc_cnt++;
        for(;;) {
            int x=S.top(); S.pop();
            sccno[x]=scc_cnt;
            if(x==u) break;
        }
    }
}

void find_scc(int n) {
    dfs_clock=scc_cnt=0;
    memset(sccno,0,sizeof(sccno));
    memset(pre,0,sizeof(pre));
    for(int i=0;i<n;i++) if(!pre[i]) dfs(i);
}

相关文章推荐

HDU 1269 迷宫城堡 强联通分量模板存放处

为了存一下模板,我决定强行拉低一波博文质量。。#include #include #define min(i,j) ((i)...

HDU 1269 迷宫城堡(强联通模板题)

HDU 1269 迷宫城堡(强联通模板题)

hdu 1827 强联通分量模板

Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)...

强联通分量 Tarjan算法 模板

/* 图使用向量数组保存,注意初始化edge * 每个点对应的 最大分量的序号 保存在sccNub中 * 可以增加一个vector 存储每个 最大分量中的点 * 所有下标都是 1 ~ n *...

畅联通工程续(最短路 算法模板。。。)

某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 ...

(点双联通分量模板)POJ 2942 Knights of the Round Table 圆桌骑士

Knights of the Round TableTime Limit: 7000MS Memory Limit: 65536K DescriptionBeing a knight is...
  • w4149
  • w4149
  • 2017年07月12日 15:20
  • 101

poj 2117 去掉割点可以分得的联通图的个数模板

#include #include #define N 11000 /* 去掉一个割点后,询问可以分得的联通图的个数 */ struct node { int u,v,next; }bian[N*1...

点双联通和二分图着色(二分图判定)模板

void dfs(int u,int fa) { pre[u]=low[u]=++dfs_clock;//不想改了,ow不用定义成数组,直接定义一个变量 low...

联通LTE单验报告模板

  • 2015年09月04日 12:20
  • 3.76MB
  • 下载

联通无线设计模板

  • 2015年01月15日 13:32
  • 21.22MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:强联通模板
举报原因:
原因补充:

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