图论中,连通图基于连通的概念。在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的。如果 G 是有向图,那么连接vi和vj的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图(注意:需要双向都有路径)。图的连通性是图的基本性质。
 
严格定义(摘抄):

对一个图 G=(V,E) 中的两点 xy ,若存在交替的顶点和边的序列
Γ=(x=v0-e1-v1-e2-...-ek-(vk+1)=y) (在有向图中要求有向边vi−( vi+1)属于E ),则两点 xy 是连通的。Γ是一条xy的连通路径,xy分别是起点和终点。当 x = y 时,Γ 被称为回路。如果通路 Γ 中的边两两不同,则 Γ 是一条简单通路,否则为一条复杂通路。如果图 G 中每两点间皆连通,则 G 是连通图。
 
基本方法:
简单的随便从一个点开始bfs,每遍历到一个点都将那个点打好标记,并且统计个数,在bfs退出以后比较统计的连通的点的个数是否等于我们的节点个数,等于则是连通图,不等则不是连通图。
 
代码如下:
 #include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
using namespace std; const int maxn = + ; int n,m;
int my_index; vector<int >G[maxn];
bool vis[maxn]; void bfs(int u){
queue<int >Q;
Q.push(u);
while(!Q.empty()){
int s = Q.front();Q.pop();
vis[s] = true;
my_index++;
for(int i = ;i < G[s].size(); i++){
int v = G[s][i];
if(!vis[v])Q.push(v);
}
}
} int main(){
scanf("%d%d",&n,&m);
for(int i = ;i <= m; i++){
int a,b;
scanf("%d%d",&a,&b);
G[a].push_back(b);
     G[b].push_back(a);
}
bfs();
if(my_index == n)printf("Yes\n");
else printf("No\n");
}

bfs判断连通图(无向)的更多相关文章

  1. hdu-5652 India and China Origins(二分+bfs判断连通)

    题目链接: India and China Origins Time Limit: 2000/2000 MS (Java/Others)     Memory Limit: 65536/65536 K ...

  2. dfs判断连通图(无向)

    在图论中,连通图基于连通的概念.在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的.如果 G 是有向图,那么连接vi和vj的路径中所有的边都 ...

  3. BFS(判断状态) HDOJ 3533 Escape

    题目传送门 题意:一个人从(0, 0)逃往(n, m),地图上有朝某个方向开炮的炮台,问最少逃脱步数 分析:主要在状态是否OK,当t时刻走到(x,y),炮台是否刚好打中,因为只能是整数,所以用整除判断 ...

  4. hdu1180 优先队列bfs+判断方向

    诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

  5. hihocoder hiho第38周: 二分·二分答案 (二分搜索算法应用:二分搜索值+bfs判断可行性 )

    题目1 : 二分·二分答案 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回和上上回里我们知道Nettle在玩<艦これ>,Nettle在整理好舰队之后 ...

  6. DFS判断连通图

    因为是连通图,所以从任意一点出发,一定可以通过一遍深度优先遍历就能走过所有的点和边,就可以利用这个性质来很容易的通过DFS判断图是否为连通图 下面是具体算法:

  7. codeforces 688C C. NP-Hard Problem(bfs判断奇数长度环)

    题目链接: C. NP-Hard Problem time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  8. bfs判断子图是否连通

    int judge() { int v[13] = { 0 }; queue<int> myq; myq.push(ans[0]); v[ans[0]] = 1; while (!myq. ...

  9. 牛客小白月赛2 D 虚虚实实 【欧拉图】【连通图】

    链接:https://www.nowcoder.com/acm/contest/86/D来源:牛客网 题目描述 震为雷,临危不乱,亨通畅达:巽为风,柔顺伸展,厚载万物. 震卦:洊雷,震,君子以恐惧修省 ...

随机推荐

  1. 【修改 UITextField 中 placeholder 的顏色】

    第一种方法: [textfeild setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; ...

  2. 给hadoop新手的一封信:Hadoop入门自学及对就业的帮助

    学习指南,刚接触这个确实有点懵逼,感觉还有很多东西要学要看,自己要逐渐构造成一个框架的体系. 附上一个学习博客地址: http://www.cnblogs.com/mephisto/p/4835386 ...

  3. PHP 二维数组根据某个字段排序

    二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按 ...

  4. Zbrush 快捷键

    1.按住shift 在空白地方移动鼠标左键 就会去到正交视图 2.shift+F可以看一下布线的情况 3.按住shift 点一下画布,松开shift键,就可以旋转画布

  5. 【leetcode】Remove Nth Node From End of List

    题目简述: Given a linked list, remove the nth node from the end of list and return its head. For example ...

  6. WebService技术(二)— CXF

    前言:学习笔记,以供参考 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services .可以与Spring进行快速无 ...

  7. Android Studio 引用 gson-2.6.2-sources

    1.拷贝到libs下

  8. SGIP、SMGP 长短信发送问题小结

    长短信发送问题.1.将信息长度拆开发送.2.为了解决长短信拆分发送,在手机终端,收到的顺序错乱,所以在每一段短信发送完成后,延时5秒,这样在手机终端客户收到的信息,就会按照拆分的顺序发送. //信息总 ...

  9. sip协议音视频性能测试

    http://www.cnblogs.com/wxiaoqin/p/3629926.html https://www.myvoipapp.com/cn/docs/faq/performance_tes ...

  10. js数组操作大全

    原文(http://www.cnblogs.com/webhotel/archive/2010/12/21/1912732.html) 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简 ...