【题意】 给出一张无向连通图,求至少连几条边可以变成边双连通图【思路】求出边-双连通分量,缩点就成了一棵树,求这棵树里的出度为1 的点num 结果是(num-1)/2; 1 #include 2 #include 3 #include 4 #include 5 #include 6 using na...
分类:
其他好文 时间:
2014-07-29 11:32:06
阅读次数:
310
题意:
要求在一个特殊的图上找最大匹配,该图特点是:无向图,每个节点度数为3,是一个边双连通分量(the graph is 2-edge-connected (that is, at least 2 edges need to be removed in order to make the graph disconnected) 这一点是这样理解的把。。)
思路:
一般想法就直接建图求最大匹...
分类:
其他好文 时间:
2014-07-23 13:22:07
阅读次数:
207
by:白书
#define M 10000
int pre[M],dfs_clock,iscut[M],low[M],bcc_cnt,bccno[M];
vectorG[M],bcc[M];
struct Edge
{
int u,v;
Edge(int from,int to)
{
u=from;
v=to;
}
};
stack S;
int dfs(int u,int fa...
分类:
其他好文 时间:
2014-07-06 11:29:32
阅读次数:
198
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define eps 1e-6
#define ll __int64
using namespace std;
#define N 1010
#define M 20010...
分类:
其他好文 时间:
2014-07-03 16:59:36
阅读次数:
226
首先将原图中的连通分量缩点,一定可以将原图缩成一棵树的形式,然后统计这棵树的叶子节点个数,答案就是(leaf+1)/2。这里不再证明,可以画个图看一下。(简单说明一下,首先把两个最近公共祖先最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通...
分类:
其他好文 时间:
2014-06-15 11:33:53
阅读次数:
247
树的删边游戏。。由于题目的特殊性,我们只需计算环的边数值。若为偶环,则直接把环的根节点置0。若为奇环,则留下一条边与根结点相连,并那它们的SG置0;注意的是,两个点也可构成环,因为允许重边。所以,我们只需求点双连通分量,并判断分量中边的数量即可。然后DFS求树的SG值。 1 #include ...
分类:
其他好文 时间:
2014-06-15 10:43:23
阅读次数:
285
一、基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图...
分类:
其他好文 时间:
2014-06-09 15:43:52
阅读次数:
344
求割点
const int maxn = 1010;
vector a[maxn], bcc[maxn];
int pre[maxn];
int low[maxn];
bool iscut[maxn];
int bccno[maxn];
int cnt[maxn];
int dfs_clock;
int bcc_cnt;
int n;
struct Edge
{
int u, v;
};...
分类:
其他好文 时间:
2014-06-08 05:54:36
阅读次数:
270
图的连通分量,关节点和桥
====
对于有向图,我们称其一个子图是强连通分量,是指任意两点u,v, 都有两条路径u到v和v到u。
对于连通无向图,我门称其一个子图是双连通分量,是指任意两点u,v,存在一个圈包含u,v。与无向图相关联的还有关节点x,是指去掉x,图不连通;桥(u,v)是指去掉这条边,图不连通。
求解算法的要义在于首先要理解:
树边-前向边-后向边-交叉边
"Conside...
分类:
编程语言 时间:
2014-04-30 22:37:40
阅读次数:
448