最关键通用部分:强连通分量一定是图的深搜树的一个子树。 一、 Kosaraju算法 算法思路 基本思路: 这个算法可以说是最容易理解,最通用的算法,其比较关键的部分是同时应用了原图G和反图GT。(步骤1)先用对原图G进行深搜形成森林(树),(步骤2)然后任选一棵树对其进行深搜(注意这次深搜节点A能往 ...
分类:
其他好文 时间:
2016-07-06 13:23:45
阅读次数:
162
最关键通用部分:强连通分量一定是图的深搜树的一个子树。 一、 Kosaraju算法 算法思路 基本思路: 这个算法可以说是最容易理解,最通用的算法,其比较关键的部分是同时应用了原图G和反图GT。(步骤1)先用对原图G进行深搜形成森林(树),(步骤2)然后任选一棵树对其进行深搜(注意这次深搜节点A能往 ...
分类:
其他好文 时间:
2016-07-05 18:57:05
阅读次数:
200
有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 Kosaraju_Algorithm: 基本思路 ...
分类:
其他好文 时间:
2016-04-14 10:40:10
阅读次数:
143
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 23445 Accepted: 9605 Description Every cow's dream is to become the most popul
分类:
其他好文 时间:
2016-02-25 22:42:18
阅读次数:
297
之前对Kosaraju_Algorithm理解有误,现在彻底明白了。Kosaraju_Algorithm:? step1:对原图G进行深度优先遍历,记录每个节点的离开时间。形成了一个森林(很多树)。? step2:选择具有最晚离开时间的顶点,对反图GT进行遍历,删除能够遍历到的顶点,这些顶点构成.....
分类:
Web程序 时间:
2015-08-28 14:54:22
阅读次数:
266
判断是不是只有一个强连通分量,Kosaraju算法。/*有向图强连通分量的求解*/#include#include#include#include#includeusing namespace std;const int maxn=10000+10;vectorG[maxn];vectorFG[ma...
分类:
其他好文 时间:
2015-08-11 12:11:52
阅读次数:
135
有向图中,连通性比较好理解,如果两个顶点V和顶点W是可达的,可以称之为强连通的,即存在路径A→B,同时也存在一条有向路径B→A.从之前的有向环的判定过程中其实我们可以得到一个结论就是两个是强连通的当且仅当它们都在一个普通的有向环中。强连通将所有的顶点分为了不同的集合,每个集合都是由相互均为强连通性的...
分类:
编程语言 时间:
2015-08-09 17:05:14
阅读次数:
142
poj 2186 Popular Cows
题意:
有N头牛, 给出M对关系, 如(1,2)代表1欢迎2, 关系是单向的且可以传递, 即1欢迎2不代表2欢迎1, 但是如果2也欢迎3那么1也欢迎3。
求被所有牛都欢迎的牛的数量。
限制:
1
1
思路:
Kosaraju算法, 看缩点后拓扑序的终点有多少头牛, 且要判断是不是所有强连通分量都连向它。
Kosaraju...
分类:
编程语言 时间:
2015-07-20 13:07:49
阅读次数:
178
题意:有n个飞机要降落,每机都可以在两个时间点上选择降落。但是两机的降落时间间隔太小会影响安全性,所以,要求两机的降落时间应该达到最大,当然也不能冲突了。问最大的时间间隔是多少?(其实问的是max(每种方案中两机间的最小间隔) )思路: 用Kosaraju算法也是可以过的,而且代码也比较少,那就用....
分类:
其他好文 时间:
2015-07-10 14:43:18
阅读次数:
109