随笔分类 -  *图论---连通分量

摘要:RevolC FaeLoN UVA - 10972 题意:给一个无向图,现在要将所有的边变成有向,问至少还需要建几条边才能使得图强连通。 新的有向图强连通等价于原图边双连通。 1 /*********************************************************** 阅读全文
posted @ 2017-11-19 21:48 yijiull 阅读(160) 评论(0) 推荐(0)
摘要:Street Directions UVA - 610 题意:给一个无重边的无向图,把边变成有向的,有的边可能需要变成两条有向边,使得从任何一点出发都可以到达其他所有点。 只有桥需要变成两条边,其它边dfs输出即可。 1 /************************************** 阅读全文
posted @ 2017-11-19 20:43 yijiull 阅读(152) 评论(0) 推荐(0)
摘要:Intelligence System HDU - 3072 题意:一个人要传递命令给所有人,如果两人之间互达,不需任何费用,求最少费用 有向图强连通。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int inf=0x3f3f3 阅读全文
posted @ 2017-08-18 16:58 yijiull 阅读(236) 评论(0) 推荐(0)
摘要:The Largest Clique UVA - 11324 题意:有向图最大团。求任意两点可达(不是互达)的最多点数。 先求出SCC,然后缩点,新图就变成了一个DAG,每个点的权值为内点的个数,用DP求解最大值。 1 #include <bits/stdc++.h> 2 using namespa 阅读全文
posted @ 2017-08-18 16:54 yijiull 阅读(368) 评论(0) 推荐(0)
摘要:Proving Equivalences HDU - 2767 UVALive - 4287 Equivalent Sets HDU - 3836 Equivalent Sets HDU - 3836 Equivalent Sets 题意:有向图,问还需要加几条边才变成强连通。 求出各强连通分量,缩 阅读全文
posted @ 2017-08-18 16:48 yijiull 阅读(165) 评论(0) 推荐(0)
摘要:迷宫城堡 HDU - 1269 题意:很明显是直接让判断有向图是不是强连通分量。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxv=10010; 4 const int maxe=100010; 5 int n,m; 阅读全文
posted @ 2017-08-18 16:44 yijiull 阅读(195) 评论(0) 推荐(0)
摘要:SPF POJ - 1523 题意:无向图,求割顶以及去掉该割顶后有几个连通分量。 去掉一个割顶后,从割顶dfs遍历整张图,每扫一个连通分量计数器加1 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using nam 阅读全文
posted @ 2017-08-18 16:34 yijiull 阅读(154) 评论(0) 推荐(0)
摘要:Railway HDU - 3394 题意:一个无向图,1求不在任何一个环里的边数;2求在不止一个环里的边数。 第一问明显就是求桥,第二问,如果求出的某个点双连通分量里面边数多于点数,说明不止一个环,那么所有的边都在不止一个环里。 该求点双连通的,,求成了边双连通。。。要仔细分析问题。 1 #inc 阅读全文
posted @ 2017-08-18 16:27 yijiull 阅读(346) 评论(0) 推荐(0)
摘要:Caocao's Bridges HDU - 4738 Caocao's Bridges 题意:一个带权无向图,破坏一条边的代价是权重,如果可以破坏一条边使得存在两点不能互达,输出最小代价。 【找权值最小的桥】 找到桥更新答案即可。 注意如果本身图就不连通,则不需要破坏,代价为0 如果图不存在桥,则 阅读全文
posted @ 2017-08-18 16:16 yijiull 阅读(253) 评论(0) 推荐(0)
摘要:Redundant Paths POJ - 3177 Redundant Paths 题意:一个无向图(有重边!!),问至少还要加多少边使得去掉任意一条边后任意两点仍可互达。 和上题poj3352基本相同,不过dfs的时候,不能用v!=f来判断是否能走,而要用当前走的边和上一条边是不是反向边 1 # 阅读全文
posted @ 2017-08-18 16:14 yijiull 阅读(172) 评论(0) 推荐(0)
摘要:Road Construction POJ - 3352 题意:一个无向图(无重边),问至少还要加多少边使得去掉任意一条边后任意两点仍可互达。 无向图的边双连通分量(无重边) 先用一次dfs标记出割边,然后dfs标记出各联通分量 再根据割边,缩点重新建图,生成一颗树 则答案就是(叶子树+1)/2. 阅读全文
posted @ 2017-08-18 16:11 yijiull 阅读(299) 评论(0) 推荐(0)
摘要:Knights of the Round Table UVALive - 3523 题意:n个人开会,有些人相互憎恨不能挨着坐,且每场会议要保证是奇数个人。问有几个人一场会议也不能参加。 【无向图的点的双连通分量+二分图的判定】 不相互憎恨的人连边建图。 题目本质上要求的是不在任何一个奇圈上的人有几 阅读全文
posted @ 2017-08-18 16:08 yijiull 阅读(198) 评论(0) 推荐(0)
摘要:看了一下午了,,有点迷。。。 割顶和桥:大白书上有说p314 不过桥的方法好像不太实用,,再看这个方法 无向图: 点的双连通(BCC): 大白书p315 边的双连通: 好像还分有没有重边,一种方法是lrj说的,两遍dfs 另一种是像有向图的强连通分量类似的方法(好像是错的,就别看了hhh) 有向图: 阅读全文
posted @ 2017-07-21 22:53 yijiull 阅读(181) 评论(0) 推荐(0)