ACM程序设计19.pptVIP

  • 10
  • 0
  • 约2.37千字
  • 约 23页
  • 2016-10-17 发布于湖北
  • 举报
ACM程序设计19

ACM程序设计 第十九讲 图的连通性问题 无向图 有向图 无向图 连通分量 欧拉回路(通路) Hamilton回路(通路) 连通分量 若图G(V,E)的子图G(V,E)满足对任意v1,v2属于V,存在一条路径使得v1可达v2 性质:一个无向图可以划分为若干个连通分量 算法1 并查集 复杂度O(|E|) init_set(|V|); for each (u,v) in E union(u,v); //条件find(a)==find(b)说明a,b属于同一个连通分量 特点:依赖并查集 连通分量 算法2 深度搜索 时间复杂度O(|E|) dfs(u){ vis[u]=eid; for each (u,v) in E if(!vis[v])dfs(v); } memset(vis,0,sizeof(vis)); for each v in V{ if(!vis[v]){ ++eid;dfs(v);} } 特点:空间复杂度比较高 欧拉回路(通路) 图G的一个回路(通路),恰好经过图G的每一条边一次 图G有欧拉回路的充要条件: 图G是连通图 任意点度数为偶数 图G有欧拉通路的充要条件: 图G是连通图 奇度数的顶点数0个或2个 Fleury算法 判断图是否为Euler图 选择出度大于入度的那个点(没有则任选一点)为起点搜索Euler路 采用DFS搜索方式开始寻找Euler路 Hamilton回路(通路) 给定图G,存在一个回路(通路)包含图G的所有顶点恰好一次 最优哈密顿通路(回路)算法:状态压缩DP 有向图 弱连通分量 欧拉回路(通路) Hamilton回路(通路) 强连通分量 找环 边连通分量和桥 双连通分量和割点 弱连通分量 有向图的子图去掉方向后形成的图是连通图 必要条件:没有孤立点(每个点的度大于0) 算法:去掉方向后利用无向图连通算法 欧拉回路(通路) 图G的一条有向回路(通路)经过图G的每一条边恰好一次。 欧拉回路充要条件: 有向图弱连通 任意点的出度等于入度 欧拉通路充要条件: 有向图弱连通 出度等于入度或恰有两点,一点入度-出度=1,一点出度-入度=1 算法判定:类似无向图 Hamilton回路(通路) 类似无向图,要求有向回路(通路)每个顶点恰好包含一次 强连通分量 有向图的子图中任意两点存在一条有向路连接 算法: Kosaraju算法 Tarjan算法 Gabow算法 复杂度均为O(|E|) Tarjan算法最常用 Tarjan算法 Tarjan算法的操作原理如下: Tarjan算法基于定理:在任何深度优先搜索中,同一强连通分量内的所有顶点均在同一棵深度优先搜索树中。也就是说,强连通分量一定是有向图的某个深搜树子树。 可以证明,当一个点既是强连通子图Ⅰ中的点,又是强连通子图Ⅱ中的点,则它是强连通子图Ⅰ∪Ⅱ中的点。 这样,我们用low值记录该点所在强连通子图对应的搜索子树的根节点的Dfn值。注意,该子树中的元素在栈中一定是相邻的,且根节点在栈中一定位于所有子树元素的最下方。 强连通分量是由若干个环组成的。所以,当有环形成时(也就是搜索的下一个点已在栈中),我们将这一条路径的low值统一,即这条路径上的点属于同一个强连通分量。 如果遍历完整个搜索树后某个点的dfn值等于low值,则它是该搜索子树的根。这时,它以上(包括它自己)一直到栈顶的所有元素组成一个强连通分量。 找环 拓扑排序:如果能用拓扑排序求得任意一组拓扑顺序,说明无环;不能完成则说明有环。 强连通分量:通过寻找图的强连通子图可以判断图中有没有环,有几个环 改进的DFS: 无向图直接通过搜索树中关联边是否遍历到已经访问的结点; 有向图要区分边的类型,只有回边能说明有环 边连通分量和桥 一个图的子图是边连通分量,若删除子图任意一条边,仍保持连通 图G的一条边称为桥,若删除此边图G的连通分量数目加1 性质: 边连通分量不含桥 任何一个无向连通图恰好由桥和边连通分量构成 若将一个边连通分量缩成一个点,那么新图必然是一个树,每一条树边就是原图的一个桥 双连通分量和割点 一个图的子图称为双连通分量,若删除它的任意一点及其关联的所有边得到的图是连通图 一个点是图的割点,若删除此点及其关联的所有边,使得图的连通分量数目增加 性质: 双连通分量不含割点 去掉图中所有割点,残余图仍有可能产生割点 去掉图中一个割点,连通分量数目增加可能不止一个 双连通分量中任意两点均存在两条不相交路径连接 连通分量数目边连通分量数目双连通分量数目 双连通分量判断算法:图中割点总数是否为0 例题 Popular Cows(POJ2186) 题意: n头奶牛,给出若干欢迎关系ab,表示a欢迎b,关系是单向的,但可以传递 每头奶牛都欢迎自己 求被

文档评论(0)

1亿VIP精品文档

相关文档