题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269思路分析:该问题要求判断是否每两个房间都可以相互到达,即求该有向图中的所有点是否只构成一个强连通图分量,使用Tarjan算法即可求解;代码如下:#include #include #include ...
分类:
其他好文 时间:
2015-07-25 00:03:28
阅读次数:
166
有向图的强连通分量
在有向图中,u可达v不一定意味v可达到u,相互可达的节点则属于同一个强连通分量。
某节点的传递闭包为该节点所处的强连通分量和它所有后代所处的强连通分量的节点。
若有向图的所有节点同属于一个强连通分量,则称该有向图为强连通图。
在有向图中,若某子图中的任一对节点都互为可达,则该子图称为有向图的强连通分量。
计算有向图中强连通分量的方法如下:将有向...
分类:
其他好文 时间:
2015-07-16 16:44:18
阅读次数:
156
题意:给一个n个顶点m条弧的简单有向图(无环无重边),求最多可以添加多少条弧使得添加后的有向图仍为简单有向图且不是一个强连通图,如果给的简单有向图本来就是强连通图,那么输出-1.
分析:
1.用tarjan算法求出强连通分量的个数,如果个数为1,那么输出-1,结束,否则执行2
2.假设将一些强连通分量合并为有n1个顶点简单完全图1,而将剩下的强连通分量合并为n2个顶点...
分类:
其他好文 时间:
2015-07-15 19:20:57
阅读次数:
88
[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子...
分类:
编程语言 时间:
2015-05-12 13:14:49
阅读次数:
155
强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。
把一个图变为一个强连通图需要添加边数:先求出原图的强连通分量,缩点后变为有向无环图,计算新图入度为0的点的个数SumIn和出度为0的点的个数SumOut,...
分类:
其他好文 时间:
2015-05-05 14:32:38
阅读次数:
188
题目大意:给定一张无向图,求这张无向图的生成子图中有多少强连通图
正着做不好做,我们考虑容斥原理
如果一个图不连通,那么这张图缩点之后一定会形成一个点数>=2的DAG
一个DAG中一定会有一些入度为0的点,我们枚举这些点的点集进行容斥
具体DP方程和细节见代码 注释写的还是比较详细的我就不多说了= =
#include
#include
#include
#include
#de...
分类:
其他好文 时间:
2015-04-15 14:51:26
阅读次数:
402
首先介绍概念问题,在有向图中,若 顶点v1 到 v2 存成路径,并且 v2 到 v1 存成 路径,则称 顶点 v1 和 v2 是强连通的。若 有向图 任意两个节点 都是 强连通的,则 称为强连通图。非强连通图的 极大强连通子图,为 强连通分量。
特别说明,连通的概念 属于 无向图,强连通 属于 有向图。例如:无向图:连通图,连通分量,生成树; 有向图:强连通图,强连通分量。
数据结构书上 简单...
分类:
其他好文 时间:
2015-04-12 13:28:08
阅读次数:
227
有向图的强连通分量
有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly
connected components)。
...
分类:
其他好文 时间:
2015-04-03 11:15:53
阅读次数:
185
我们知道,要把一个非边双连通图构造成一个边双连通图,只需把这个图化简(边双连通分量缩点)成一个树,然后 找出叶子节点个数leaf,(leaf+1)/2就是要新添加的边数。 现在,对与有向图来说,我们需要求加最少的边,使得一个非强连通图变成一个强连通图,最少的边数是多少? 同样的,我们需要...
分类:
其他好文 时间:
2015-03-28 17:00:41
阅读次数:
192
题目地址:POJ 2375
对每个点向与之相邻并h小于该点的点加有向边。然后强连通缩点。问题就转化成了最少加几条边使得图为强连通图,取入度为0和出度为0的点数的较大者即可。注意,当强连通分量只有一个的时候,答案是0,而不是1.
代码如下:
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-03-12 19:15:06
阅读次数:
197