![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论:双连通
文章平均质量分 76
skajre
这个作者很懒,什么都没留下…
展开
-
求无向连通图的点双连通分支(不包含割点的极大连通子图)
// // main.cpp // Richard // // Created by 邵金杰 on 16/8/18. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #include #include using namespace std; const int maxn=200+10; stru原创 2016-08-18 16:40:19 · 589 阅读 · 0 评论 -
POJ 3352 Road Construction(Tarjan Algorithm求边双连通)
先缩点,然后用桥把点连起来变成一棵树,如果要变成边双连通分支,有一个结论是先数出度为1的叶子结点,加上(x+1)/2条边就可以变成边双连通(x为度为1的叶子结点数)。// // main.cpp // Richard // // Created by 邵金杰 on 16/8/18. // Copyright © 2016年 邵金杰. All rights reserved. // #原创 2016-08-18 20:52:15 · 259 阅读 · 0 评论 -
POJ 3177 Redundant Paths(Tarjan Algorithm求边双连通)
low[i]==low[j]则i,j在同一个连通块中。 // // main.cpp // Richard // // Created by 邵金杰 on 16/8/18. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #include #include #include using name原创 2016-08-18 20:58:26 · 245 阅读 · 0 评论 -
UVA 1364 Knights of the Round Table(双联通+二分图)
先把所有的双联通找出来,然后对每个双联通进行二分图判断,因为双联通分量是联通的,并且二分图肯定是偶数个点,那么如果一个双联通并且他不是二分图,那么他是不符合条件的,所以减去。#include #include #include #include #include #include using namespace std; const int maxn=1000+5; int color[maxn]原创 2016-11-13 08:42:06 · 219 阅读 · 0 评论 -
UVA 1108 Mining Your Own Business(双联通分量)
这题不能在割点上放救生装置很容易想到,关键就是如果整个图都是一个双联通的话,那么就需要放两个,因为放一个的话有可能放的那个会坍塌。#include #include #include #include #include #include using namespace std; const int maxn=50000+5; struct edge{int u,v;}; int pre[maxn]原创 2016-11-13 10:20:32 · 286 阅读 · 0 评论 -
UVA 10972 RevolC FaeLoN(边双联通+缩点)
#include #include #include using namespace std; const int maxn=1000+5; const int maxm=maxn*maxn; struct Edge{ int u,v; Edge(int u=0,int v=0):u(u),v(v){} }e[maxm]; int n,m,tot,stamp,dfn[maxn],l原创 2017-01-23 19:16:43 · 210 阅读 · 0 评论