并查集(Union-find Sets)是一种非常精巧而实用的数据结构,它主要用于处理一些不相交集合的合并问题。一些常见的用途有求连通子图、求最小生成树的 Kruskal 算法和求最近公共祖先(Least Common Ancestors, LCA)等。
使用并查集时,首先会存在一组不相交的动态集合 S={S1,S2,?,Sk},一般都会使用一个整数表示集合中的一个元素。
每个集合可能包含一个...
分类:
其他好文 时间:
2014-07-19 23:23:29
阅读次数:
378
克鲁斯卡尔算法:
假设连通网N = {V,{E}},则令最小生成树的初始状态为只有n个顶点而无边的非连通图T = {V,{}},图中每个顶点自成一个连通分量。在E中选择一个最小代价边,若该边依附的顶点落在T中的不同连通分量上,则将此边加入到T中,否则舍去此边而选择下一条最小代价边【最小生成树不存在环】。依次类推,直至T中所有顶点都在同一连通分量上为止。【连通分量:无向图的极大连通子图】
...
分类:
其他好文 时间:
2014-07-10 21:06:36
阅读次数:
207
并查集能做什么? 1.连接两个对象; 2.查询两个对象是否在一个集合中,或者说两个对象是否是连接在一起的。 并查集有什么应用? 1. Percolation问题、 2. 无向图连通子图个数 3. 最近公共祖先问题 4. Kruskal最小生成树 5. 社交网络 等等 并查集数据结构: 并查集是一种树...
分类:
其他好文 时间:
2014-07-09 14:13:20
阅读次数:
214
有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected ...
分类:
其他好文 时间:
2014-07-06 19:10:46
阅读次数:
230
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1093题意:思路:(1)首先,强连通分量中的一个点若在最大半连通子图中,则必定整个连通分量中的点都在,因为都在还是满足半连通的性质而且使得节点数更多。(2)因此,求出强连通分量缩点,形成一个...
分类:
其他好文 时间:
2014-06-23 06:09:38
阅读次数:
372
最小生成树: 一个连通图的生成树是一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边。这种构造连通网的最小代价生成树称为最小生成树,详见数据结构之图(术语、存储结构、遍历)。
求连通网的最小生成树有两种经典方法:普里姆(Prime)算法和克鲁斯卡尔(Kruskal)算法。
1、Prime算法
(1)算法描述:假设N=(V,{E})是连通网,TE是N上最小生成树中边的集合。从V中任选一个顶点u0,算法从U={u0}(u0∈V),TE={}开始,重复执行以下步骤:
在所有u∈U、v∈V-U...
分类:
其他好文 时间:
2014-06-10 15:38:52
阅读次数:
211
在有向图 G 中,若两个顶点相互可达,则称两个顶点强连通(strongly
connected)。
如果有向图G的每两个顶点都强连通,称G是一个强连通图。
非强连通图有向图的极大强连通子图,称为强连通分量(strongly
connected components)。
比如下面第一幅图
( a, b, e ), ( d, c, h ), ( f, g ) 分别为三个 SCC。...
分类:
其他好文 时间:
2014-06-08 15:24:15
阅读次数:
300
4. 最小生成树4.1
生成树(1)定义:所有顶点均由边连接在一起,但不存在回路的图叫该图的生成树(2)深度优先生成树与广度优先生成树(3) 一个图可以有许多棵不同的生成树
所有生成树具有以下共同特点: 生成树的顶点个数与图的顶点个数相同 生成树是图的极小连通子图4.2 最小生成树生成树的每条边上的...
分类:
其他好文 时间:
2014-05-28 23:07:04
阅读次数:
307
有用+1编辑有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly
connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(...
分类:
其他好文 时间:
2014-05-14 22:40:02
阅读次数:
474