图论:双连通
文章平均质量分 76
skajre
这个作者很懒,什么都没留下…
展开
-
求无向连通图的点双连通分支(不包含割点的极大连通子图)
//// main.cpp// Richard//// Created by 邵金杰 on 16/8/18.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#include#includeusing namespace std;const int maxn=200+10;stru原创 2016-08-18 16:40:19 · 591 阅读 · 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 · 263 阅读 · 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#includeusing name原创 2016-08-18 20:58:26 · 246 阅读 · 0 评论 -
UVA 1364 Knights of the Round Table(双联通+二分图)
先把所有的双联通找出来,然后对每个双联通进行二分图判断,因为双联通分量是联通的,并且二分图肯定是偶数个点,那么如果一个双联通并且他不是二分图,那么他是不符合条件的,所以减去。#include#include#include#include#include#includeusing namespace std;const int maxn=1000+5;int color[maxn]原创 2016-11-13 08:42:06 · 221 阅读 · 0 评论 -
UVA 1108 Mining Your Own Business(双联通分量)
这题不能在割点上放救生装置很容易想到,关键就是如果整个图都是一个双联通的话,那么就需要放两个,因为放一个的话有可能放的那个会坍塌。#include#include#include#include#include#includeusing namespace std;const int maxn=50000+5;struct edge{int u,v;};int pre[maxn]原创 2016-11-13 10:20:32 · 287 阅读 · 0 评论 -
UVA 10972 RevolC FaeLoN(边双联通+缩点)
#include#include#includeusing 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 · 213 阅读 · 0 评论