zoukankan      html  css  js  c++  java
  • tarjan算法——割点

    简述:从0号点开始,更新每个点能到达的最早时间戳,当 dfn[u]<=low[v] 时,u为割点

    代码:

     1 ///根结点为割点的条件:孩子数大于1
     2 int vis[maxn],dfn[maxn],low[maxn];
     3 int n,m,a[maxn][maxn],lay,son[maxn];
     4 void tarjan(int u) {
     5     low[u]=dfn[u]=++lay;
     6     vis[u]=1;
     7     for(int v=0;v<n;v++)
     8         if(a[u][v]&&!vis[v]) {
     9             tarjan(v);
    10             low[u]=min(low[u],low[v]);
    11             if(dfn[u]<=low[v])
    12                 son[u]++;
    13         }
    14         else if(a[u][v])low[u]=min(dfn[v],low[u]);
    15 }
    View Code
  • 相关阅读:
    练习题
    作业2.6-2.15 两次作业
    11.13(2)
    11.13
    11.6
    10.30
    10.15
    10.9
    9.25号作业
    9.18号
  • 原文地址:https://www.cnblogs.com/wuliking/p/11561863.html
Copyright © 2011-2022 走看看