package org.loda.graph;
import org.loda.util.In;
/**
*
* @ClassName: KosarajuSCC
* @Description: Kosaraju强连通算法
*
* 理解:原图g,逆后序order中如果a->b,那么反向图rg中如果也有a->b,表示这是...
分类:
编程语言 时间:
2015-05-25 01:03:13
阅读次数:
251
部分转自[有向图强连通分量]有向图中,如果一个子图内任意两点都可达这这个子图为强连通子图如图所示{1, 2,3,4},{5},{6} 为一个强连通子图求连通分量1.用Kosaraju算法(PS:个人感觉Kosaraju算法比较好理解,但是适用范围不如Tarjan算法广)如果在原图中点 i 可达 点 ...
分类:
其他好文 时间:
2015-05-23 22:33:34
阅读次数:
294
题目链接:POJ 2186解题思路:
kosaraju算法,本以为要缩点,但是题目只要求找到拓扑排序的一个唯一的头,可以水过——通过计算强连通分量的出度。代码:#include
#include
#include
#include
#include using namespace std;int n...
分类:
编程语言 时间:
2015-05-23 16:56:30
阅读次数:
187
链接 :
??
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1612
题意: 给一个矩阵A 大小N*N, B = A^1 + A^2 + A^3 + .... A^n , B中是否存在非0项。
题目可以转化为 N个点 编号为1-n, 对于任意点v,经过一些任意的步长到达u (u为所有点集的任意一个)。离散数学里有图的矩阵相关知识...
分类:
编程语言 时间:
2015-05-12 01:42:40
阅读次数:
149
强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。
把一个图变为一个强连通图需要添加边数:先求出原图的强连通分量,缩点后变为有向无环图,计算新图入度为0的点的个数SumIn和出度为0的点的个数SumOut,...
分类:
其他好文 时间:
2015-05-05 14:32:38
阅读次数:
188
---恢复内容开始---引自: http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591370.htmlKosaraju算法Kosaraju算法的解释和实现都比较简单,为了找到强连通分支,首先对图G运行DFS,计算出各顶点完成搜索的时间f;然后计...
分类:
其他好文 时间:
2015-02-08 16:49:23
阅读次数:
239
有向图 G = (V, E) 的一个强连通分支(SCC:Strongly Connected Components)是一个最大的顶点集合 C,C 是 V 的子集,对于 C 中的每一对顶点 u 和 v,有 u --> v 和 v --> u,亦即,顶点 u 和 v 是互相可达的。通过 Kosaraju...
分类:
编程语言 时间:
2015-01-31 00:18:59
阅读次数:
241
给定一个有向图 G = (V, E) ,对于任意一对顶点 u 和 v,有 u --> v 和 v --> u,亦即,顶点 u 和 v 是互相可达的,则说明该图 G 是强连通的(Strongly Connected)。如下图中,任意两个顶点都是互相可达的。实际上,解决该问题的较好的方式就是使用强连通分...
分类:
编程语言 时间:
2015-01-31 00:03:04
阅读次数:
263
题目大意:每头奶牛都希望自己成为最欢迎的那头牛。给你N头牛,M个崇拜关系(A,B)。
意思是牛A崇拜牛B。特别是,如果牛A崇拜牛B,牛B崇拜牛C,那么牛A也崇拜牛C。那么
问题来了:请计算出被所有牛崇拜的牛的个数。
思路:刚学的Kosaraju算法。考虑这道题,把崇拜关系(A,B)看做是一条有向边,并且,
我们发现牛的崇拜关系具有传递性。那么只要牛A有一条路径连向牛B,就可以判定牛A
崇拜牛B。于是,被所有牛崇拜的牛就是所有的点都存在一条路径连向它的有向路径。下
边简述下Kosaraju算法:
(1)对原图...
分类:
其他好文 时间:
2015-01-29 21:12:10
阅读次数:
279
kosaraju、tarjan、kosaraju dfs转非递归,三种代码。。。
可以有效对付卡系统栈的管理员。。。...