tarjan算法的第一个问题 喷我的脸。。。。手写叠式开成BOOL,我一直在找错了。。。#include#include#include#include#define maxn 100005const int MOD=1000000007;using namespace std;struct nod...
分类:
编程语言 时间:
2015-06-22 19:20:34
阅读次数:
128
//点双连通分量的求解//就是通过tarjan算法求出关节点时,与关节点的子树就是一个连通分量,可以通过画图得到//所以可以将与顶点u有关的边放到栈中,然后一但满足low[v]>=dfn[u](表面点u是割点)(注释:由于dfs,已经建好了u//的子树,所以栈中有顶点u的子树),就可以进行退栈,直到...
分类:
其他好文 时间:
2015-06-04 15:27:39
阅读次数:
115
求无向图的关节点dfn[]来存点的深度数在一张深度优先搜索树中,如果u和v是两个顶点,且生成树中u是v的祖先,则必有dfn[u]2,1->3,2->3中,dfs时1->2->3,这里dfs树中的边为1->2,2->3,那么1->3就是回边;(1)如果点u是dfs生成树的根,那么u至少有2个子女。理由...
分类:
编程语言 时间:
2015-06-03 23:09:07
阅读次数:
492
部分转自[有向图强连通分量]有向图中,如果一个子图内任意两点都可达这这个子图为强连通子图如图所示{1, 2,3,4},{5},{6} 为一个强连通子图求连通分量1.用Kosaraju算法(PS:个人感觉Kosaraju算法比较好理解,但是适用范围不如Tarjan算法广)如果在原图中点 i 可达 点 ...
分类:
其他好文 时间:
2015-05-23 22:33:34
阅读次数:
294
求强联通分量的tarjan算法应用实例 边双连通分支
分类:
其他好文 时间:
2015-05-20 18:19:54
阅读次数:
113
Tarjan算法适用于离线批量处理多个查询请求。基本思想是以深度优先搜索的顺序访问这颗树,给这棵树的结点染色,一开始所有结点都是白色的,而当第一次经过某个结点的时候,将它染成灰色,而当第二次经过这个结点的时候——也就是离开这棵子树的时候,将它染成黑色。...
分类:
编程语言 时间:
2015-05-19 14:54:36
阅读次数:
169
传送门:#1067 : 最近公共祖先·二时间限制:10000ms单点时限:1000ms内存限制:256MB描述上上回说到,小Hi和小Ho用非常拙劣——或者说粗糙的手段山寨出了一个神奇的网站,这个网站可以计算出某两个人的所有共同祖先中辈分最低的一个是谁。远在美国的他们利用了一些奇妙的技术获得了国内许多...
分类:
其他好文 时间:
2015-05-15 17:25:32
阅读次数:
354
[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子...
分类:
编程语言 时间:
2015-05-12 13:14:49
阅读次数:
155
题意:有n个学校,学校之间可以传递信息,为单向传递。
问题一:至少要向几个学校传递原始信息,才能保证所有学校都能收到信息。
问题二:至少要添加多少组关系(每组关系类型如右:a 可以 向 b 传递信息),才能保证 给任意一个学校原始信息后,其他所有学校都能收到信息。
思路:这道题其实就是一个有n个顶点的有向图,先用 Tarjan 算法缩点 , 然后分别统计出 入度为0 和 出度为0 的强连通分量个数 num1 和 num2,那么, 问题一的答案就是 num1 , 问题二的答案就是 max(num1 , nu...
分类:
Web程序 时间:
2015-05-10 09:50:36
阅读次数:
121