连通分量

E - Redundant Paths POJ - 3177(连通图 边双连通分量)

懵懂的女人 提交于 2020-01-07 08:47:54
In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1…F) to another field, Bessie and the rest of the herd are forced to cross near the Tree of Rotten Apples. The cows are now tired of often being forced to take a particular path and want to build some new paths so that they will always have a choice of at least two separate routes between any pair of fields. They currently have at least one route between each pair of fields and want to have at least two. Of course, they can only travel on Official Paths when they move from one field to another. Given a

连通图专题汇总

一个人想着一个人 提交于 2020-01-05 03:14:37
联通图课件 建议学习过程,先简单看了解课件,然后看模版代码,上面会有详细注释,以及我第一做这些代码时候遇到的问题。 无向连通图求 桥和割点 割点:无向连通图中,如果删除某点后,图变成不连通了,则称该点为割点。 桥: 无向连通图中,如果删除某条边后,图变成不连通了,则该边为桥。 注:桥和割点是无向图中的概念。 求桥: 在求割点的基础上吗,假如一个边没有重边(重边 1-2, 1->2 有两次,那么 1->2 就是有两条边了,那么 1->2就不算是桥了)。 当且仅当 (u,v) 为父子边,且满足 dfn[u] < low[v] 求无向连通图的点双连通分支(不包含割点的极大连通子图)(此处省略等遇到此类问题了再补充上去) 求无向连通图的边双连通分支(不包含桥的极大连通子图)(边双连通分支:不包含桥的连通分支) 无重边的时候可以根据 low 值来划分 边双连通分支(不能使用low 来划分连通分量 low值不同也可以在同一个连通分量内) 重边标记法 专题链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=67418#overview 1. HDU 1269 迷宫城堡 【强联通分量(模版题)】 2 .POJ 1236 Network of Schools (求联通分量稍微拓展一下) 3. UVA 315 Network(无向图求割点

图的应用(最小生成树)

萝らか妹 提交于 2019-12-27 07:36:03
最小生成树 背景 :假设要在n个城市之间建立通信网络,则连通n个城市只需要n-1条线路。这时。自然会考虑一个问题,如何在最节省经费的条件下建造这个通信网。在每两个城市之间都可以建立一条线路,相应的都要付出一定的经济代价。n个城市之间,最多可以设置n(n-1)/2条线路,那么,如何在这些可能的线路中选择n-1条,以使总的消耗经费最小呢? 可以用连通网表示n个城市,以及n个城市之中可能设置的线路,其中网的顶点表示城市,边表示城市之间的线路,赋予边的权值表示相应的代价。对于n各顶点连通网可以建立许多不同的生成树,每一刻生成树都可以是一个通信网。最好的通信网应该是代价之和最小的生成树。在一个连通网的所有生成树中,各边的代价之和最小的那颗树成为该连通网的 最小代价生成树 ,简称为 最小生成树 。 MST性质 :建设N=(V,E)是一个连通网,U是顶点集V的一个非空子集。若(u,v)是一条具有最小生权值(代价)的边,其中u∈U,v∈V-U,则比存在一颗包含边(u,v)的最小生成树。 普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法是两个利用MST性质构造最小生成树的算法。 普里姆算法: (1)普里姆算法的构造过程: 假设N=(V,E)是连通网,TE是N上最小生成树中边的集合。 U={u0}(u0∈V),TE={}。 在所有的u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边(u0

数据结构之图

谁说我不能喝 提交于 2019-12-24 07:44:07
北航软件工程专业考研991数据结构总结: 六、图 1.图的基本概念、名词术语; 2.图的邻接矩阵存储方法和邻接表(含逆邻接表)存储方法的构造原理及特点; 3.图的深度优先搜索与广度优先搜索; 4.最小(代价)生成树、最短路径、AOV网与拓扑排序的基本概念。 1.图的基本概念、名词术语; 基本概念: 定义:图是非空有穷顶点的集合 + 顶点之间的关系 构成 G(V,E),V是顶点的集合,E是边或弧的集合 分类: 无向图:(vi, vj)属于E,必有(vj,vi)属于E,顶点的前后顺序无关 有向图:<vi, vj>不同于<vj, vi> 网络:与边有关的数据称为权,边上带权的图叫做网络 名词术语: 顶点的度:依附于顶点vi的边数称为度 TD(vi) 有向图: 入度:以顶点vi作为终止点的边数称为入度ID(vi) 出度:以顶点vi作为起始点的边数称为出度OD(vi) 结论: ①、边数E = 各个顶点的度的总和/2 ②、具有n个顶点的无向图最多有 n(n-1)/2 条边 每个顶点可以向其他n-1个顶点发出一条边,n个顶点总边数 n(n-1),根据相互性,除以2 ③、具有n个顶点的有向图最多有 n(n-1) 条边 完全图:边数达到最大 稠密图:边数达到或者接近最大边数的图 稀疏图:否则。。。 路径:顶点vx到vy之间有路径P(vx, vy)的充分必要条件为:存在顶点序列 vx, vi1,

DS图—图的连通分量

♀尐吖头ヾ 提交于 2019-12-21 12:52:43
DS图—图的连通分量 题目描述 输入无向图顶点信息和边信息,创建图的邻接矩阵存储结构,计算图的连通分量个数。 输入 测试次数t 每组测试数据格式如下: 第一行:顶点数 顶点信息 第二行:边数 第三行开始,每行一条边信息 输出 每组测试数据输出,顶点信息和邻接矩阵信息 输出图的连通分量个数,具体输出格式见样例。 每组输出直接用空行分隔。 样例输入 3 4 A B C D 2 A B A C 6 V1 V2 V3 V4 V5 V6 5 V1 V2 V1 V3 V2 V4 V5 V6 V3 V5 8 1 2 3 4 5 6 7 8 5 1 2 1 3 5 6 5 7 4 8 样例输出 A B C D 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 2 V1 V2 V3 V4 V5 V6 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 2 3 4 5 6 7 8 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 3 基本思路 连通分量就是有多少个顶点相连可以构成一个图

Tarjan算法

馋奶兔 提交于 2019-12-21 11:38:55
Tarjan算法整理 ( [转自: http://blog.sina.com.cn/s/blog_60707c0f0100xdh5.html ][ http://blog.sina.com.cn/s/blog_71aa4dbb01010qsc.html ] [ http://blog.sina.com.cn/s/blog_71aa4dbb01010pq0.html ] ) 基本概念 : 1. 割点: 若删掉某点后,原连通图分裂为多个子图,则称该点为 割点 。 2. 割点集合 :在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为 割点集合 。 3. 点连通度 :最小割点集合中的顶点数。 4. 割边 ( 桥 ) :删掉它之后,图必然会分裂为两个或两个以上的子图。 5. 割边集合 :如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为 割边集合 。 6. 边连通度 :一个图的 边连通度 的定义为,最小割边集合中的边数。 7. 缩点 :把没有割边的连通子图缩为一个点,此时满足任意两点之间都有两条路径可达。 注:求块 <> 求缩点。缩点后变成一棵 k 个点 k-1 条割边连接成的树。而割点可以存在于多个块中。 8. 双连通分量 : 分为点双连通和边双连通 。 它的标准定义为

【SSL_P1759】求连通分量

▼魔方 西西 提交于 2019-12-19 18:24:14
求连通分量 题目链接: 求连通分量 题目描述 求一个图的连通分量 输入格式 输入一个数n(n<=100)表示顶点数,下面每行输入两个整数,表示一条边的两个顶点,输入两个0表示结束。 输出格式 一个整数,为这个图的连通分量。 输入输出样例 输入 8 6 3 1 2 2 5 5 4 4 1 8 7 0 0 输出 3 解题思路 这道题方法有很多种,在老师的要求下作者写了 5 种方法,如果有不太清楚的地方望各位海涵 ①深度优先搜索+邻接矩阵 # include <iostream> using namespace std ; int n , a [ 110 ] [ 110 ] , b [ 110 ] , t , maxn ; void dfs ( int now , int star ) //深度优先搜索 { if ( b [ now ] ) return ; b [ now ] = star ; for ( int i = 1 ; i <= n ; i ++ ) if ( a [ now ] [ i ] ) dfs ( i , star ) ; } int main ( ) { cin >> n ; int x , y ; cin >> x >> y ; if ( ! ( x && y ) ) //特殊判断 { cout << 1 << endl ; return 0 ; } while

图的遍历

两盒软妹~` 提交于 2019-12-15 01:16:43
基于图的遍历,求图中连通分量的个数 题目描述 从键盘接收图的顶点集,关系集,创建无向图。 第一行依次输入图的顶点个数n,关系个数k,以空格隔开。顶点个数<=20 第二行依次输入顶点值,类型为字符。接下去有k行,每行为两个字符 u 和 v,表示节点u 和 v 连通。格式为【uv】,中间不用空格间隔。计算连通分量个数并输出。输出一个整数,表示连通分量个数。 样例输入 Copy 6 7 ABCDEF AB AE BC CD DA DB EC 样例输出 Copy 2 # include <stdio.h> # include <stdlib.h> # define MAX 20 typedef struct { int Bian [ MAX ] [ MAX ] ; char vex [ MAX ] ; int vexnum ; int arcnum ; } ADj ; int visited [ MAX ] = { 0 } ; int Locat ( ADj * A , char c ) { int i; for ( i = 1 ; i <= A -> vexnum ; i ++ ) { if ( A -> vex [ i ] == c ) return i ; } return 0 ; } void gets ( ADj * A ) { int i , j , ; char a , b

图的基本概念详解

社会主义新天地 提交于 2019-12-11 22:34:00
一、前言 从今天开始就给大家分享有关于图的概念和代码啦,不知道大家有没有看够树的相关内容呢?以后还会慢慢给大家再分享的,代码要一遍一遍过,一轮一轮学习。第一轮树就先到这里,等第二轮还会给大家分享的。 图应该是数据结构中处于霸王地位的一部分了,图会涉及到图论的相关知识,咱们现在还涉及不到,等到以后分享数学基础,讲离散数学的时候,会给大家分享有关图论的内容。 为什么称图是霸王地位呢?因为图应该是数据结构中最难的: 1.图状结构是我们研究的结构里面最复杂的结构 我们在讲解数据的逻辑结构时给大家讲到数据结构有如下四个:集合,线性结构,树形结构,图状结构或网状结构。集合只有同属于一个集合;线性结构存在一对一的关系;树形结构存在一对多的关系;图状结构存在多对多的关系。 2.图的相关关系非常复杂,相关概念非常多 图有有向图,有无向图;有简单图,有多重图;有连通图,非连通图等等等等。如果把图画出来,我们人去看一个图比较简单,我们会有各种各样去分析这个图的方法,计算机不同,他们没有人这么强大的大脑,很多对于图的分析很死板,需要我们把图分析好了再做处理(如果人工智能发展比较好的话,这个问题可能会解决)。 但是图又很重要,不管是地图,人物关系等,把每个人或者每个地方看作一个点,其他的点都会与之有上千万的联系。所有就都有及其复杂的网络,不管是路径规划,导航提醒还是警察在断案,其实本质上都是图的应用。 所以

Redundant Paths(poj 3177 边双连通分量)

戏子无情 提交于 2019-12-06 04:59:06
Redundant Paths Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21252 Accepted: 8773 Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1..F) to another field, Bessie and the rest of the herd are forced to cross near the Tree of Rotten Apples. The cows are now tired of often being forced to take a particular path and want to build some new paths so that they will always have a choice of at least two separate routes between any pair of fields. They currently have at least one route between each pair of fields and want to have at least