连通
银之夏雪
这个作者很懒,什么都没留下…
展开
-
双连通分量
本博客转载自http://blog.csdn.net/tsaid/article/details/6877404 [点连通度与边连通度]在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个转载 2016-05-10 15:04:49 · 440 阅读 · 0 评论 -
hdu4635Strongly connected 【求最多加多少边仍不是强连通分量】
这道题其实做完之后发现几乎就是模板题,然而之前有个地方想了一周一直拧不过来,题目是最多加多少条边仍然不是强连通图,也就可以理解为再多加一条边就无论如何都是强连通图,等价于最多去掉几条边使之仍未强连通图,当此时再多去一条边的时候,等价于最少去掉几条变使原图不强连通,好了终于绕完了,都给我自己绕蒙了,那么我们是最少去掉多少条边使原图不强联通,我们先把它变成一个完全图,然后再减去题目中给的边 ans=n原创 2016-05-08 21:48:12 · 564 阅读 · 0 评论 -
有向图的强连通分量 hdu3836
今天做题发现图论的有向图强连通分量的tarjan算法不会,于是就照着这个博客https://www.byvoid.com/blog/scc-tarjan/学习了一下,感觉非常棒 题目是说等价证明,a,b,c,d互相证明,最少增加的推导数目,a能推出b,b能推出c,c能推出d,d能推出a,最少是4次。首先找出强连通分量,然后把每个强连通分量缩成一个点,得到一个DAG。接下来,设有a个节点(别忘了,这原创 2016-03-12 20:20:13 · 849 阅读 · 0 评论 -
Tarjan算法求至少要添加几条边才能使无向连通图变为边双连通图。
本博客转载自http://blog.csdn.net/lyy289065406/article/details/6762370 首先建立模型: 给定一个连通的无向图G,至少要添加几条边,才能使其变为双连通图。模型很简单,正在施工的道路我们可以认为那条边被删除了。那么一个图G能够在删除任意一条边后,仍然是连通的,当且仅当图G至少为双连通的。 PS:不要问我为什么不是3-连通、4-连通…人转载 2016-05-07 20:32:14 · 2231 阅读 · 0 评论 -
poj3352Road Construction(边双连通分量)
大致题意: 某个企业想把一个热带天堂岛变成旅游胜地,岛上有N个旅游景点,任意2个旅游景点之间有路径连通(注意不一定是直接连通)。而为了给游客提供更方便的服务,该企业要求道路部门在某些道路增加一些设施。 道路部门每次只会选择一条道路施工,在该条道路施工完毕前,其他道路依然可以通行。然而有道路部门正在施工的道路,在施工完毕前是禁止游客通行的。这就导致了在施工期间游客可能无法到达一些景点。 为了在施原创 2016-05-07 20:28:15 · 501 阅读 · 0 评论 -
poj1144Network 无向图求割点Tarjan
n个点,组成一个无向图,求这个图中割点的数量。模板题。 只是这道题在输入数据的时候有点麻烦,如样例中,第一组数据有五个点,5 1 2 3 4 表示5这个点与1 2 3 4 点相连。其中这个图的割点只是5这个点。第二组数据6个点,2 与1 3 5相连,5与2 4 6相连,其中2点与5点都是割点。 有两类节点可以成为割点:对根节点u,若其有两棵或两棵以上的子树,则该根结点u为割点; 对非叶子节原创 2016-05-06 12:50:49 · 849 阅读 · 0 评论 -
CF22E 加最少的边使原有向图边成强连通图
这道题千万不要一般化:先求强连通分量再把图化为 DAG 来做(我们能够很方便的得到需要添加的边的数量,但是加哪些边会变得很麻烦) 给每个定义一个起点和终点,然后按照下面的做就行了: 当整个图只有一个环的时候,不可能通过加边使得其成为强连通图! 链接相邻的两个分块(分块 A 的终点连向分块 B 的起点) 对于分块中不是起点的入度为 0原创 2016-05-12 22:08:47 · 1321 阅读 · 0 评论 -
poj2942圆桌骑士(点双连通分量+二分图染色法判奇圈)
之前一直不明白点双连通分量能用来干嘛,比如边双连通分量可以问加几条边能变成边双连通,这个题目是这样的,每个圆桌会议至少三个骑士参加,因为需要表决意见,所以骑士数目必须是奇数个,直到那些骑士互相憎恨,也就是不能坐在一起的,把能坐在一起的建边,求无法参加任何会议的骑士的个数,重点是任何会议,这点非常关键,这道题之前一直卡在这里,还有就是有的人属于好几种双连通分量,所以全部标记之后再减掉比较好,至于奇数个原创 2016-05-10 22:03:00 · 1930 阅读 · 0 评论 -
zoj2588(无向图求割边)
这道题其实就是一道很简单的割边的模板题,不过需要处理重边导师意见有点麻烦的事#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int MAXN=20005;const int MAXM=200005;struct edge{原创 2016-05-10 21:44:48 · 1174 阅读 · 0 评论 -
poj1523(割点)
这道题是求哪个点是割点,并且能把原图分成几块,add_block数组是求增加的所以还需要加1,然后就是我一直在PE,后来发现需要每输出一组后,有一个空行#include <iostream>#include <string.h>#include <stdio.h>using namespace std;const int MAXN=1005;const int MAXM=0x3f3f3f;原创 2016-05-06 14:57:01 · 752 阅读 · 0 评论