zoukankan      html  css  js  c++  java
  • 图的割边

    暂时没有传送门

    割边

    割边呢,也称作桥,和割点很像,指的是在一个图中,去掉某一条边后,这个图不联通了。

     1 #include<iostream>
     2 #include<cmath>
     3 #include<cstdio>
     4 #include<cstdlib>
     5 #include<cstring>
     6 #include<string>
     7 #include<algorithm>
     8 using namespace std;
     9 inline int min(int a,int b){return a<b?a:b;}
    10 inline int max(int a,int b){return a>b?a:b;}
    11 inline int read()
    12 {
    13     int x=0,f=1;char ch=getchar();
    14     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    15     while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    16     return x*f;
    17 }
    18 int n,m;
    19 int head[100006];
    20 int nxt[200006],to[200006];
    21 int total=0;
    22 void add(int x,int y){
    23     total++;
    24     to[total]=y;
    25     nxt[total]=head[x];
    26     head[x]=total;
    27     return ;
    28 }
    29 int dfn[100006],low[100006];
    30 int tot=0;
    31 void tarjan(int x,int fa){
    32     dfn[x]=low[x]=++tot;
    33     for(int e=head[x];e;e=nxt[e]){
    34         if(!dfn[to[e]]){
    35             tarjan(to[e],x);//扩展 
    36             low[x]=min(low[x],low[to[e]]);//回溯low 
    37             if(low[to[e]]>dfn[x]) printf("%d->%d
    ",x,to[e]);//如果两点之间只有这一条路径,那么它是割边 
    38         }
    39         else if(to[e]!=fa) low[x]=min(low[x],dfn[to[e]]);//如果一个点被搜索过了并且是x的儿子或者是它的父亲,就可以直接回溯 
    40     }
    41     return ;
    42 }
    43 int main(){
    44     n=read(),m=read();
    45     for(int i=1;i<=m;i++){
    46         int x=read(),y=read();
    47         add(x,y);//无向图 
    48         add(y,x);
    49     }
    50     for(int i=1;i<=n;i++) if(!dfn[i]) tarjan(i,i);
    51     return 0;
    52 }
  • 相关阅读:
    一个回车键黑掉一台服务器——使用Docker时不要这么懒啊喂
    docker machine介绍和使用
    Docker Engine和Docker Machine介绍
    Nginx服务器之负载均衡策略
    从linux启动到rootfs的挂载分析
    Docker容器的生命周期管理
    docker的使用
    automake,autoconf使用详解
    go语言中文网中的资源
    Go工具和调试详解
  • 原文地址:https://www.cnblogs.com/1129-tangqiyuan/p/11708053.html
Copyright © 2011-2022 走看看