zoukankan      html  css  js  c++  java
  • POJ 1144 Network —— (找割点)

      这是一题找无向图的割点的模板题,割点的概念什么的就不再赘述了。这里讲一下这个模板的一个注意点。

      dfs中有一个child,它不等于G[u].size()!理由如下:

      如上图,1的size是2,但是它的child是1,因为对他进行dfs时,顺序是1-2-3...然后再等到它访问它的第二个节点3时,3已经被访问过了,不能算他的child了,这是一个误区。

      代码如下:

     1 #include <stdio.h>
     2 #include <stack>
     3 #include <algorithm>
     4 #include <string.h>
     5 #include <vector>
     6 using namespace std;
     7 
     8 const int N = 100+5;
     9 
    10 stack<int> S;
    11 int scc_cnt;
    12 int dfs_clock;
    13 int dfn[N];
    14 int low[N];
    15 int iscut[N];
    16 vector<int> G[N];
    17 
    18 void dfs(int u,int fa)
    19 {
    20     dfn[u]=low[u]=++dfs_clock;
    21     int child = 0;
    22     for(int i=0;i<G[u].size();i++)
    23     {
    24         int v = G[u][i];
    25         if(!dfn[v])
    26         {
    27             child++;
    28             dfs(v,u);
    29             low[u]=min(low[u],low[v]);
    30             if(low[v]>=dfn[u]) iscut[u]=1;
    31         }
    32         else if(dfn[v]<dfn[u] && v!=fa)
    33         {
    34             low[u]=min(low[u],dfn[v]);
    35         }
    36     }
    37     if(fa == -1 && child == 1) iscut[u]=0;
    38 }
    39 
    40 int main()
    41 {
    42     int n;
    43     while(scanf("%d",&n)==1 && n)
    44     {
    45         memset(dfn,0,sizeof(dfn));
    46         memset(iscut,0,sizeof(iscut));
    47         dfs_clock=0;
    48         for(int i=1;i<=n;i++) G[i].clear();
    49         
    50         int x;
    51         while(scanf("%d",&x)==1 && x)
    52         {
    53             while(getchar() != '
    ')
    54             {
    55                 int y;
    56                 scanf("%d",&y);
    57                 G[x].push_back(y);
    58                 G[y].push_back(x);
    59             }
    60         }
    61 
    62         dfs(1,-1);
    63         int cnt=0;
    64         for(int i = 1 ;i<=n;i++) if(iscut[i]) cnt++;
    65         printf("%d
    ",cnt);
    66     }
    67     return 0;
    68 }
  • 相关阅读:
    SpringApplication类-1
    post与head注入
    sql_post注入
    渗透测试点线面合集
    渗透入侵溯源
    VMware 安装Tools 失败的问题:VGAuthService 启动失败
    Weblogic wls-wsat XMLDecoder 反序列化漏洞复现(CVE-2017-10271)
    web常见的中间件漏洞及复现
    XX点评H5字体映射
    python控制阿里云服务器开机,关机,重启
  • 原文地址:https://www.cnblogs.com/zzyDS/p/5629021.html
Copyright © 2011-2022 走看看