一、dfs框架: 二、无向图连通分量 三、二分图判定 调用之前,清空color数组,调用之前,先给color[u]赋值1 四、无向图的割点和桥 加入时间戳 注意:求桥的时候注意重边 五、无向图的双连通分量 点-双连通分量 六、有向图的强连通分量 七、2-SAT问题 ...
分类:
其他好文 时间:
2018-09-04 01:48:50
阅读次数:
251
https://blog.csdn.net/stillxjy/article/details/70176689 割顶和桥:对于无向图G,如果删除某个节点u后,连通分量数目增加,则称u为图的割顶;如果删除某条边后,连通分量数目增加,则称该边为图的桥。对于连通图删除割顶或桥后都会使得图不再连通 以下我, ...
分类:
其他好文 时间:
2018-04-10 10:48:29
阅读次数:
181
#include #include #include using namespace std; const int N = 250; int head[N], low[N], dfn[N], fa[N]; int n, m, now = 1, Tarjan_clock; bool is_cut[N]... ...
分类:
编程语言 时间:
2017-08-13 12:30:29
阅读次数:
145
割顶:对于无向图G,如果删除某个点u后,连通分量的数目增加, 称u为图的割顶。对于连通图,割顶就是删除之后使图不再连通的点。 割顶的求解依如下定理: 在无向连通图G的DFS树中,非根结点u是G的割顶当且仅当u存在一个子节点v,使得v及其所有后代都没有反向边连回u的祖先(连回u)不算。 算法实现: 采 ...
分类:
编程语言 时间:
2017-02-19 15:27:30
阅读次数:
198
割顶: 关键点,删掉这个点后,图的连通分量 + 1; 桥: 在割顶的基础上,发现删除 (u,v) 这条边,图就变成非连通的了。 如何找出所有割顶和桥: 时间戳: 在无向图的基础上,DFS建树的过程中,各点进栈和出栈的时间 dfs_clock,进栈的时间 pre[],出栈的时间 post[] 在DFS ...
分类:
其他好文 时间:
2016-11-15 19:28:30
阅读次数:
241
看了LRJ的训练指南上连通有关的介绍,写得挺好,但是有些位置逻辑跳跃比较大,还有一些留给读者思考的位置,在此做个总结. 1.DFS框架 2.连通分量 3.二分图判定 4.无向图的割顶和桥 5.无向图的双连通分量 6.有向图的强连通分量(Tarjan算法) 1.DFS框架 连通图很多都是跟DFS框架里 ...
分类:
其他好文 时间:
2016-10-28 20:42:39
阅读次数:
386
#include
#include
#include
#include
using namespace std;
#define maxn 7500
#define inf 0x3f3f3f3f
int first[maxn],to[maxn],nxt[maxn],e;
int pre[maxn],low[maxn];
int clock;
int iscut[maxn];
void add(in...
分类:
其他好文 时间:
2015-08-01 17:27:14
阅读次数:
98
时间戳 dfs_clock :说白了就是记录下访问每个结点的次序。假设我们用 pre 保存,那么如果 pre[u] > pre[v], 那么就可以知道先访问的 v ,后访问的 u 。
现在给定一条边, (u, v), 且 u 的祖先为 fa, 如果有 pre[v]
1 求连通分量:
相互可达的节点称为一个连通分量;
#include
#include
#i...
分类:
其他好文 时间:
2015-03-14 15:24:00
阅读次数:
165