``` //桥:删掉之后,图就不连通 //边双连通分量:极大的不含有桥的连通块 //不管删掉哪条边,都是连通的 //任意两个点之间,至少存在两条不相交的路径 //割点:如果把某个点和它所关联的所有边都删掉,图就不连通 //每一个割点至少属于两个双连通分量 //点双连通分量:极大的不包含割点的连通块 ... ...
分类:
其他好文 时间:
2020-05-08 18:31:37
阅读次数:
56
```//对于一个有向图,连通分量:对于分量中任意两点uv,//必然可以从u走到v,也可以从v走到u//强连通分量(scc):极大连通分量,也就是加上任何一个点之后,都不是连通分量//有向图通过缩点,转化为有向无环图(DAG),拓扑图//缩点是指将所有连通分量缩成一个点//Tarjan算法求scc/... ...
分类:
其他好文 时间:
2020-05-08 18:02:50
阅读次数:
74
``` cpp //Tarjan求割点 void tarjan(int now,int fa){ int num=0; low[now]=dfn[now]=++dfnc; for(int i=head[now];i;i=b[i].next){ int u=b[i].to; if(!dfn[u]){ ... ...
分类:
其他好文 时间:
2020-05-01 12:26:28
阅读次数:
60
来源:https://blog.csdn.net/summer_dew/article/details/81557331 关节点 什么是关节点 【关节点】 删除顶点V 与 =>图不再是连通图了 => 顶点V就叫关节点 V上的所有边 【连通图】图中的任意两点,都有路可以连通例子: 将 顶点a 与 a的 ...
分类:
其他好文 时间:
2020-05-01 10:58:17
阅读次数:
65
用到的算法 割边 + 缩点(得到边连通分量) + 朴素LCA 算法解析 + 无向图区分重边与同一条边的反方向: 对每一条边都用一个变量id来标识,一条无向边的两个方向用同一个id表示。 + 割边: ,即以点v为根的子树不能到达点u及以上,所以边uv为一条割边。 + 缩点(得到边双连通分量): 去掉桥 ...
分类:
其他好文 时间:
2020-04-26 13:55:29
阅读次数:
62
将(1,2,3,4,5)命名为1号连通块将(1,6)命名为2号连通块将(6,7)命名为3号连通块将(6,8,9)命名为4号连通块 将割点1命名为5号将割点6命名为6号 将每个割点与它从前所属于的连通块进行联边,形如下: 一个更复杂的样例 缩点后成为: ...
分类:
其他好文 时间:
2020-04-12 19:00:51
阅读次数:
133
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4612 题意:给定一个无向图,问加一条边后最少的桥数是多少。 思路:找出边双连通分量后缩点成一棵树,然后我们要是加一条边使桥数最少,显然是去找树的直径,所以两边DFS去找树的直径即可,注意这里很坑,重边是 ...
分类:
其他好文 时间:
2020-04-11 23:30:08
阅读次数:
65
找出所有的桥出来,然后去掉桥即可 #include<cstdio> #include<iostream> using namespace std; const int MAXN=1e5,MAXM=1e6; struct Edge{ int from,to,nxt; }e[MAXM]; int hea ...
分类:
其他好文 时间:
2020-04-11 20:42:13
阅读次数:
73
1:POJ3353 Road Construction 此题没有重边 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 1010 #define M 2020 using n ...
分类:
其他好文 时间:
2020-04-11 20:10:18
阅读次数:
72
@[双连通分量] 题意: 有一个 n 个点 m 条边的无向图,问至少添加几条边,能让该图任意缺少一条边后还能相互连通。 双连通分量定义: 在无向连通图中,如果删除该图的任何一个结点都不能改变该图的连通性,则该图为双连通的无向图。一个连通的无向图是双连通的,当且仅当它没有关节点(这里面节点可换成边:分 ...
分类:
其他好文 时间:
2020-04-06 11:45:21
阅读次数:
62