码迷,mamicode.com
首页 >  
搜索关键字:双连通    ( 384个结果
HDU 4587 TWO NODES (双连通割点应用)
题意:N个点(0~n-1),M条无向边,问去掉2个点后最多的连通分块有多少。 先去掉一个点求出各个割点,并在dfs过程中求出去掉这个割点有多少个连通分块(将iscut[u]=true改为iscut[u]++), 这样子第二次就可以直接找出最多的连通分块了。 #include #include #include #include #include #include #inclu...
分类:其他好文   时间:2014-07-08 13:06:23    阅读次数:145
点-双连通分量模板
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
poj3177 Redundant Paths 边双连通分量
#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
HDU 4005 The war
HDU 4005 The war 双连通+树形dp (题目坑很大…...
分类:其他好文   时间:2014-07-03 13:46:22    阅读次数:238
hdu 4612 Warm up 双连通缩点+树的直径
首先双连通缩点建立新图(顺带求原图的总的桥数,其实由于原图是一个强连通图,所以桥就等于缩点后的边) 此时得到的图类似树结构,对于新图求一次直径,也就是最长链。 我们新建的边就一定是连接这条最长链的首尾,这样就将原图的桥减少了直径个。 #include #include #include #include #include #include using namespace std; #...
分类:其他好文   时间:2014-06-28 07:18:36    阅读次数:278
UESTC 899 方老师和农场 --双连通分量的构造
首先将原图中的连通分量缩点,一定可以将原图缩成一棵树的形式,然后统计这棵树的叶子节点个数,答案就是(leaf+1)/2。这里不再证明,可以画个图看一下。(简单说明一下,首先把两个最近公共祖先最远的两个叶节点之间连接一条边,这样可以把这两个点到祖先的路径上所有点收缩到一起,因为一个形成的环一定是双连通...
分类:其他好文   时间:2014-06-15 11:33:53    阅读次数:247
POJ 3710
树的删边游戏。。由于题目的特殊性,我们只需计算环的边数值。若为偶环,则直接把环的根节点置0。若为奇环,则留下一条边与根结点相连,并那它们的SG置0;注意的是,两个点也可构成环,因为允许重边。所以,我们只需求点双连通分量,并判断分量中边的数量即可。然后DFS求树的SG值。 1 #include ...
分类:其他好文   时间:2014-06-15 10:43:23    阅读次数:285
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)【转】【修改】
一、基本概念: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
Light OJ 1291 Real Life Traffic 双连通最少添边数
题目来源:Light OJ 1291 Real Life Traffic 题意:最少添加几条边 可以使全图边双连通 思路:缩点 重新构图 答案就是(叶子节点数+1)/ 2 #include #include #include #include #include using namespace std; const int maxn = 10010; struct Edge { i...
分类:其他好文   时间:2014-06-08 02:57:26    阅读次数:276
384条   上一页 1 ... 36 37 38 39 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!