本文转载自:http://blog.csdn.net/xinghongduo/article/details/6195337 说到以Tarjan命名的算法,我们经常提到的有3个,其中就包括本文所介绍的求强连通分量的Tarjan算法。而提出此算法的普林斯顿大学的Robert E Tarjan教...
分类:
编程语言 时间:
2014-11-15 14:05:55
阅读次数:
176
Tarjan算法 (以发现者Robert Tarjan命名)是一个在图中寻找强连通分量的算法。算法的基本思想为:任选一结点开始进行深度优先搜索dfs(若深度优先搜索结束后仍有未访问的结点,则再从中任选一点再次进行)。搜索过程中已访问的结点不再访问。搜索树的若干子树构成了图的强连通分量。 应用到咱.....
分类:
编程语言 时间:
2014-11-05 18:55:19
阅读次数:
227
题意的本质是查找没有出度的强连通子图,没有出度就是sink,the bottom of graph了。
就是利用Tarjan算法求强连通子图,并要用标识号标识各个强连通子图,然后记录好各个顶点属于哪强连通子图。
程序带详细的注解:...
分类:
其他好文 时间:
2014-10-31 10:12:32
阅读次数:
232
【功能】Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量。强连通分量是指有向图G里顶点间能互相到达的子图。而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连通分量就是极大强连通分量。【算法思想】用dfs遍历G中的每个顶点,通dfn[i]表示dfs时达到顶点i...
分类:
编程语言 时间:
2014-10-29 09:07:38
阅读次数:
203
图论题目,需要解决问题:
1 使用Tarjan算法求子强连通图
2 标识顶点属于哪个子强连通图
3 计算各个子强连通图的零入度数和零出度数
图论中高级内容了,是有点难度的,不细心一点肯定会出错的。
这次本博主认真注解好几乎每个语句,希望大家可以follow我的程序。...
分类:
Web程序 时间:
2014-10-26 17:01:42
阅读次数:
252
图论复习之强连通分量以及缩点—Tarjan算法
by RtPYH
------------------------------------------------------------------------------------------------
【强连通分量以及连通子图】
#define#
在一...
分类:
编程语言 时间:
2014-10-21 01:04:41
阅读次数:
278
题意:基环树最大独立集
思路:
像这种题就是朴素的树形dp非常容易的,我们用一些技巧转化为变体树。
直接套用仙人掌的动态规划做法:(基环树事实上也属于一种仙人掌)
首先利用tarjan算法,如果遇到自己与儿子之间的边为割边则按照树边处理。
Tarjan后看一下与自己相连的边,如果某个相邻点不是自己的儿子,并且入栈序比自己大,那么说明自己是环上的的最高点,此时我们对环上特别的进行d...
分类:
其他好文 时间:
2014-10-17 11:57:30
阅读次数:
371
题目链接
题意: 给定一张有向图,找出所有强连通分量,并输出。
思路:有向图的强连通分量用Tarjan算法,然后用map映射,便于输出,注意输出格式。
代码:
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 2000;
const in...
分类:
其他好文 时间:
2014-10-16 19:41:33
阅读次数:
210
题意:给定一个有向图,寻找一个点数最大集合,使得这个集合中的任意两个点 u,v, 都有u->v 或者 v->u 或者uv 思路:首先将强连通分量通过tarjan算法求出来,然后进行缩点,也就是每一个缩点 所组成的图就是一个DAG图!令每一个点的权值就是这个缩点所包含节点(也就是对应的 强连通分量的....
分类:
其他好文 时间:
2014-10-11 23:18:06
阅读次数:
393
/* *算法引入: *树上两点的最近公共祖先; *对于有根树的两个结点u,v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u,v的祖先且x的深度尽可能大; *对于x来说,从u到v的路径一定经过点x; * *算法思想: *Tarjan_LCA离线算法; *Tarjan算法基...
分类:
其他好文 时间:
2014-10-04 18:57:16
阅读次数:
146