AcWing 3587:连通图 ← dfs(邻接矩阵 or 链式前向星)

【题目来源】
https://www.acwing.com/problem/content/3590/

【题目描述】
给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。

【输入格式】
输入包含若干组数据。
每组数据第一行包含两个整数 n 和 m,表示无向图的点和边数。
接下来 m 行,每行包含两个整数 x,y,表示点 x 和点 y 相连。
点的编号从 1 到 n。
图中可能存在
重边自环

【输出格式】
每组数据输出一行,一个结果,如果所有顶点都是连通的,输出 YES,否则输出 NO。

【数据范围】
输入最多包含 10 组数据。
1≤n≤1000,
1≤m≤5000,
1≤x,y≤n

【输入样例】
4 3
1 2
2 3
3 2
3 2
1 2
2 3

【输出样例】
NO
YES

【算法分析】
● 本题的“
并查集”代码实现详见:https://blog.csdn.net/hnjzsyjyj/article/details/126455868
● 本题利用 dfs 判断连通图的原理在于“
dfs必然能够遍历到连通图的所有点”。如果有点没有被遍历到,说明不连通。

【算法代码:dfs+链式前向星】
● dfs算法模板:
https://blog.csdn.net/hnjzsyjyj/article/details/118736059
● 链式前向星详见:https://blog.csdn.net/hnjzsyjyj/article/details/139369904

#include <bits/stdc++.h>
using namespace std;const int N=1e3+5;
const int M=5e3+5;
int e[M<<1],ne[M<<1],h[N],idx;
bool st[N];
int n,m;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}void dfs(int u) {st[u]=1;for(int i=h[u]; i!=-1; i=ne[i]) {int j=e[i];if(!st[j]) dfs(j);}
}int main() {while(cin>>n>>m) {memset(st,false,sizeof st);memset(h,-1,sizeof h);idx=0;while(m--) {int a,b;cin>>a>>b;add(a,b),add(b,a);}dfs(1);bool flag=true;for(int i=1; i<=n; i++)if(!st[i]) {flag=false;break;}if(flag) cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}/*
in:
4 3
1 2
2 3
3 2
3 2
1 2
2 3out:
NO
YES
*/

【算法代码:dfs+邻接矩阵】
● dfs算法模板:
https://blog.csdn.net/hnjzsyjyj/article/details/118736059
● 无向无权图的邻接矩阵实现:https://blog.csdn.net/hnjzsyjyj/article/details/116245897

#include <bits/stdc++.h>
using namespace std;const int N=1010;
int g[N][N];
bool st[N];
int n,m;void dfs(int u) {st[u]=true;for(int i=1; i<=n; i++)if(!st[i] && g[u][i]!=0) dfs(i);
}int main() {while(cin>>n>>m) {memset(g,0,sizeof g);memset(st,false,sizeof st);int x,y;while(m--) {cin>>x>>y;g[x][y]=g[y][x]=1;}dfs(1);int i;for(i=1; i<=n; i++) {if(!st[i]) break;}if(i<=n) cout<<"NO"<<endl;else cout<<"YES"<<endl;}return 0;
}/*
in:
4 3
1 2
2 3
3 2
3 2
1 2
2 3out:
NO
YES
*/



【参考文献】
https://www.acwing.com/solution/content/124095/

https://blog.csdn.net/hnjzsyjyj/article/details/118736059
https://blog.csdn.net/hnjzsyjyj/article/details/139369904


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题系列 - 第5天

题目&#xff1a;Java Lambda表达式与Stream API的深度应用 背景说明&#xff1a;Java 8引入了Lambda表达式和Stream API&#xff0c;极大地提升了Java函数式编程的能力&#xff0c;使代码更简洁、更易读。掌握Lambda表达式和Stream API的使用&#xff0c;对于优化数据处理流程…

Qt/C++项目积累: 2.主机监控器 - 2.2 历史功能实现

修订历史&#xff1a; 20240711&#xff1a;初始表设计&#xff0c;采用sqlite 正文&#xff1a; 关于历史数据存储&#xff0c;考虑的是用数据库来完成&#xff0c;目前考虑使用Sqlite和mysql&#xff0c;先用sqlite来实现&#xff0c;设计表过程如下&#xff1a; 机器总览…

白骑士的C++教学进阶篇 2.1 指针与引用

系列目录 上一篇&#xff1a;白骑士的C教学基础篇 1.5 数据结构 指针和引用是C中非常重要的概念&#xff0c;它们提供了强大的功能&#xff0c;使程序员能够直接操作内存&#xff0c;提高程序的效率和灵活性。在本篇博客中&#xff0c;我们将深入探讨指针与引用的基础知识&…

从零开始学习嵌入式----Makefile工具

一、Makefile 简明指南 你是否曾经面对过一堆源代码文件&#xff0c;却不知道如何将它们编译成可执行文件&#xff1f;或者你是否厌倦了每次修改代码后都要手动输入冗长的编译命令&#xff1f; 如果是的话&#xff0c;那么 Makefile 就是你的救星&#xff01; 二、Makefile 是什…

全网最适合入门的面向对象编程教程:14 类和对象的 Python 实现-类的静态方法和类方法,你分得清吗?

全网最适合入门的面向对象编程教程&#xff1a;14 类和对象的 Python 实现-类的静态方法和类方法&#xff0c;你分得清吗&#xff1f; 摘要&#xff1a; 本文主要介绍了Python中类和对象中的类方法和静态方法&#xff0c;以及类方法和静态方法的定义、特点、应用场景和使用方…

网安防御保护-小实验

1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3、办公区设备10.0.2.10不允许访问DMZ区的FTP服务器和HTTP服务器&#xff0c;仅能ping通…

vue 环境变量那些事

常见的项目环境变量的使用 总则&#xff1a;使用 .env.环境名字文件去定义&#xff0c;运行命令的时候指定环境 比如&#xff1a;.env 代表所有环境变量使用的一些变量 .env.development 代表的开发环境变量 .env.production 代表的生产环境变量也就是上线以后使用的 vitevu…

自主研发接口测试框架

测试任务&#xff1a;将以前完成的所有的脚本统一改写为unitest框架方式 1、需求原型 1.1 框架目录结构 V1.0&#xff1a;一般的设计思路分为配置层、脚本层、数据层、结果层&#xff0c;如下图所示 V 2.0&#xff1a;加入驱动层testdriver 1.2 框架各层需要完成的工作 1、配…

Fast DDS library windows 下源码编译(cmake)

目录 编译环境&#xff1a; 编译需要的源码文件&#xff1a; Fast DDS编译&#xff1a; 注意事项&#xff1a; 参考文档&#xff1a; 基于Fast DDS 的源码来编译相关的库&#xff0c;然后可以通过python 来调用库文件实现dds 数据通信&#xff0c;本文就详细的介绍编译过程…

机器学习筑基篇,容器调用显卡计算资源,Ubuntu 24.04 快速安装 NVIDIA Container Toolkit!...

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Ubuntu 24.04 安装 NVIDIA Container Toolkit 什么是 NVIDIA Container Toolkit? 描述:NVIDIA Container Toolkit(容器工具包)使用户能够构建和运行 GPU 加速的容器,该工具包括一个容器运行时库和实用程序,用于自动…

石油巨头受冲击!埃克森美孚、BP接连发出盈利预警

KlipC报道&#xff1a;近日&#xff0c;BP&#xff08;英国石油&#xff09;预计其第二季度将面临10亿至20亿美元的减值费用&#xff0c;并发出警告称其炼油利润率“大幅下降”&#xff0c;石油交易收益预计出现疲软。消息公布后&#xff0c;其股价下跌超4%。 由于中间馏分油利…

JavaScript(8)——函数

函数 function,是被设计执行特定任务的代码块。 函数可以把具有相同或相似逻辑的代码包裹起来&#xff0c;通过函数调用执行这些代码&#xff0c;这么做的优势有利于精简代码方便复用。类似于alert(),prompt()和console.log()&#xff0c;这些都是js函数&#xff0c;不过已经…

STL(一)

书写形式&#xff1a;string (const string& str, size_t pos, size_t len npos); 举例&#xff1a; int main(){ string url("https://mp.csdn.net/mp_blog/creation/editor?spm1000.2115.3001.4503") string sub1(url,0,5);//从下标为0开始向后5个字符&…

如何在 Python 中创建一个类似于 MS 计算器的 GUI 计算器

问题背景 假设我们需要创建一个类似于微软计算器的 GUI 计算器。这个计算器应该具有以下功能&#xff1a; 能够显示第一个输入的数字。当按下运算符时&#xff0c;输入框仍显示第一个数字。当按下第二个数字时&#xff0c;第一个数字被替换。 解决方案 为了解决这个问题&am…

华为OD机考题(HJ108 求最小公倍数)

前言 经过前期的数据结构和算法学习&#xff0c;开始以OD机考题作为练习题&#xff0c;继续加强下熟练程度。 描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值&#xff0c;设计一个算法&#xff0c;求输入A和B的最小公倍数。 数据范围&#xff1a;1≤…

Spring中的适配器模式和策略模式

1. 适配器模式的应用 1.1适配器模式&#xff08;Adapter Pattern&#xff09;的原始定义是&#xff1a;将一个类的接口转换为客户期望的另一个接口&#xff0c;适配器可以让不兼容的两个类一起协同工作。 1.2 AOP中的适配器模式 在Spring的AOP中&#xff0c;使用Advice&#…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十九章 Linux 工具之make 工具和 makefile 文件

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

集群管理脚本

虚拟机集群管理脚本 文章目录 虚拟机集群管理脚本一、远程调用脚本(remote_call.sh)二、远程复制目录脚本(remote_copy.sh) 一、远程调用脚本(remote_call.sh) 如果有传命令参数&#xff0c;则执行该命令&#xff1b;如果没有传命令参数&#xff0c;则不执行。 #!/bin/bashcm…

【嵌入式Linux】<知识点> GDB调试(更新中)

文章目录 前言 一、GDB调试预备工作 二、GDB的启动与退出 三、GDB中查看源代码 四、GDB断点操作 五、GDB调试指令 前言 在专栏【嵌入式Linux】应用开发篇_Linux打工仔的博客中&#xff0c;我们已经写了大量的源程序。但是在调试这些程序时我们都是通过printf大法和肉眼除…

评估指标:精确率(Precision)、召回率(Recall)、F1分数(F1 Score)

评估指标&#xff1a;精确率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1分数&#xff08;F1 Score&#xff09; 前言相关介绍1. 准确率&#xff08;Accuracy&#xff09;2. 精确率&#xff08;Precision&#xff09;3. 召回率&#xff08;Re…