当前位置: 首页 > news >正文

图论1-问题 C: 算法7-6:图的遍历——广度优先搜索

题目描述
广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作为起始点。重复上述过程,直至图中所有顶点都被访问到为止。
其算法可以描述如下:

在本题中,读入一个无向图的邻接矩阵(即数组表示),建立无向图并按照以上描述中的算法遍历所有顶点,输出遍历顶点的顺序。

输入
输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。
以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个0或1,1表示第i个顶点和第j个顶点有直接连接,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。
输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图。
输出
只有一行,包含n个整数,表示按照题目描述中的广度优先遍历算法遍历整个图的访问顶点顺序。每个整数后输出一个空格,并请注意行尾输出换行。
样例输入 复制
4 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 0 
样例输出 复制
0 3 1 2 
提示
在本题中,需要熟练掌握图的邻接矩阵存储方式。在建立完成无向图之后,需要严格按照题目描述的遍历顺序对图进行遍历。另外,算法中描述的FirstAdjVex函数和NextAdjVex函数,需要认真的自行探索并完成。在本题中需要使用队列结构,需要对队列的概念进行复习。
通过这道题目,应该能够对图的广度优先搜索建立更加直观和清晰的概念.
题解
t
tii
#include<bits/stdc++.h>
using namespace std;
using ll = long long;const int N = 105;int mp[N][N];int n;bool vis[N];void dfs(int u){cout << u << ' ';vis[u] = true;for(int i = 0;i < n;i ++){if(mp[u][i] == 1 && !vis[i]){dfs(i);}}
}
void bfs(int u){queue<int>q;q.push(u);while(!q.empty()){int cu = q.front();q.pop();cout << cu << ' ';vis[cu] = true;for(int i = 0;i < n;i ++){if(mp[cu][i] == 1 && !vis[i]){vis[i] = true;q.push(i);}      }}
}int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin >> n;for(int i = 0;i < n;i ++)for(int j = 0;j < n;j ++)cin >> mp[i][j];bfs(0);return 0;
}

相关文章:

图论1-问题 C: 算法7-6:图的遍历——广度优先搜索

题目描述 广度优先搜索遍历类似于树的按层次遍历的过程。其过程为&#xff1a;假设从图中的某顶点v出发&#xff0c;在访问了v之后依次访问v的各个未曾被访问过的邻接点&#xff0c;然后分别从这些邻接点出发依次访问它们的邻接点&#xff0c;并使“先被访问的顶点的邻接点”先…...

基于 STM32 的多功能时间管理器项目

引言 在快节奏的生活中&#xff0c;时间管理显得尤为重要。本项目旨在通过 STM32 开发一个多功能时间管理器&#xff0c;功能包括计时器、闹钟和日历。用户可以方便地设置不同的提醒和计时任务&#xff0c;以更好地管理日常生活和工作。 项目名称 多功能时间管理器 环境准备 …...

Java工程结构:二方库依赖规约

文章目录 I jar 包分类一方库:二方库:三方库:II 专有名词GAV(GroupId、ArtifactId、Version):Maven 坐标III GAV 规则GroupId 格式ArtifactId 格式二方库版本号命名方式:主版本号.次版本号.修订号I jar 包分类 一方库: 本工程内部子项目模块依赖的库(jar 包)。 二…...

Django自带admin管理系统使用

1、admin路径地址 localhost:8000/admin 2、使用命令行创建超级管理员 python manage.py createsuperuser 之后按照提示一步一步往下走就好了。 3、修改管理员密码 python manage.py changepassword admin admin是超级管理员的账号 4、后台管理系统注册模型&#xff0c;…...

Jmeter 简单使用、生成测试报告(一)

一、下载Jmter 去官网下载&#xff0c;我下载的是apache-jmeter-5.6.3.zip&#xff0c;解压后就能用。 二、安装java环境 JMeter是基于Java开发的&#xff0c;运行JMeter需要Java环境。 1.下载JDK、安装Jdk 2.配置java环境变量 3.验证安装是否成功&#xff08;java -versio…...

手摸手实战前端项目CI CD

由于图片和格式解析问题&#xff0c;为了更好阅读体验可前往 阅读原文 CI/CD 是 持续集成&#xff08;Continuous Integration&#xff09; 和 持续交付/部署&#xff08;Continuous Delivery/Continuous Deployment&#xff09; 的缩写&#xff0c;是现代软件开发中的一种自动…...

【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端

Elasticsearch 提供了多种查询类型&#xff0c;每种查询类型适用于不同的搜索场景。以下是八种常见的 Elasticsearch 查询类型及其详细说明和示例。 1. Match Query 用途&#xff1a;用于全文搜索&#xff0c;会对输入的文本进行分词&#xff0c;并在索引中的字段中查找这些分…...

K8S中的Pod调度之亲和性调度

亲和性调度 亲和性调度是一种比硬性指定节点&#xff08;使用 nodeName 或 nodeSelector&#xff09;更灵活的调度策略&#xff0c;它允许定义一组规则&#xff0c;根据这些规则&#xff0c;调度器会尝试将 Pod 调度到最合适的节点上&#xff0c;但如果找不到完全匹配的节点&a…...

高等数学学习笔记 ☞ 不定积分的积分法

1. 第一换元积分法 1. 基础概念&#xff1a;形如的过程&#xff0c;称为第一换元积分法。 2. 核心思想&#xff1a;通过对被积函数的观察(把被积函数的形式与积分表的积分公式进行比较)&#xff0c;把外部的部分项拿到的内部(求原函数)&#xff0c; 然后进行拼凑&#xff0c;…...

【HTTP】详解

目录 HTTP 基本概念啥是HTTP&#xff0c;有什么用&#xff1f;一次HTTP请求的过程当你在浏览器中输入一个浏览器地址&#xff0c;它会发送什么 &#xff1f;---&#xff08;底层流程&#xff09;HTTP的协议头请求头&#xff08;对应客户端&#xff09;一些请求头请求方法 响应头…...

cursor重构谷粒商城01——为何要重构谷粒商城

前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶到中高阶程序员。 本项目将基于谷粒商城…...

如何在 ASP.NET Core 中实现速率限制?

在 ASP.NET Core 中实现速率限制&#xff08;Rate Limiting&#xff09;中间件可以帮助你控制客户端对 API 的请求频率&#xff0c;防止滥用和过载。速率限制通常用于保护服务器资源&#xff0c;确保服务的稳定性和可用性。 ASP.NET Core 本身并没有内置的速率限制中间件&…...

STM32-笔记43-低功耗

一、什么是低功耗&#xff1f; 低功耗‌是指通过优化设计和采用特定的技术手段&#xff0c;降低电子设备在运行过程中消耗的能量&#xff0c;从而延长电池寿命、提高性能和减少发热。低功耗设计主要从芯片设计和系统设计两个方面进行&#xff0c;旨在减少所有器件的功率损耗&am…...

Facebook 隐私风波:互联网时代数据安全警钟

在社交媒体飞速发展的今天&#xff0c;个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一&#xff0c;Facebook面临的隐私问题&#xff0c;尤其是数据泄露事件&#xff0c;频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏&#xff0c;Facebook的隐私挑…...

Java 中的 ZoneOffset

介绍 在我们的这个世界上因为地球是圆的&#xff0c;所以每个国家都会有自己特定的时区。 时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在&#xff0c;又给我们带来了很多的麻烦&#xff0c;比如北美地区使用的夏令时和中国统一使用东 8 区的时间等。 当…...

amis模板语法、数据映射与表达式

模板字符串 表达式中获取变量 可以支持在普通文本中&#xff0c;使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法&#xff1a;${xxx} 获取数据域中变量的值&#xff0c;并渲染 HTML "<h1>Hello<…...

频域增强通道注意力机制EFCAM模型详解及代码复现

背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...

GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效

代码托管平台 GitLab 国际站&#xff08;GitLab.com&#xff09;近日发布公告&#xff0c;官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务&#xff0c;并提供 60 天过渡期自行迁移账户数据&#xff0c;超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...

BPG图像库和实用程序(译)

1)快速介绍 编辑Makefile以更改编译选项&#xff08;默认编译选项对于Linux应该是OK的&#xff09;。输入make来编译&#xff0c;输入make install来安装编译后的二进制文件。bpgview&#xff1a;为了编译它&#xff0c;你需要安装SDL和SDL_image库。Emscripten的使用&#xff…...

简述1个业务过程:从客户端调用接口,再到调用中间件(nacos、redis、kafka、feign),数据库的过程

以下是一个常见的业务过程示例&#xff0c;展示了从客户端调用接口&#xff0c;再到调用中间件&#xff08;Nacos、Redis、Kafka、Feign&#xff09;和数据库的过程&#xff1a; 假设我们有一个电商系统&#xff0c;客户端要查询某个商品的详细信息&#xff0c;这个商品信息可…...

01.02、判定是否互为字符重排

01.02、[简单] 判定是否互为字符重排 1、题目描述 给定两个由小写字母组成的字符串 s1 和 s2&#xff0c;请编写一个程序&#xff0c;确定其中一个字符串的字符重新排列后&#xff0c;能否变成另一个字符串。 在这道题中&#xff0c;我们的任务是判断两个字符串 s1 和 s2 是…...

什么是.NET中的反射,它有哪些应用场景

反射是.NET框架提供的一种强大的机制&#xff0c;它允许程序在运行时查询和操作对象的类型信息。以下是对.NET中反射的详细解释及其应用场景&#xff1a; 一、反射的定义 在.NET中&#xff0c;所有类型的信息&#xff08;包括类、结构、委托、接口、枚举等以及它们的成员信息…...

Linux离线部署ELK

文章目录 前期准备开始安装安装elastic search安装logstash安装kibana 配置ELK配置ElasticSearch配置logstash配置kibana 启动ELK启动命令启动测试 设置ELK策略创建ILM策略将ILM策略与日志index关联查看索引是否被ILM策略管理 前期准备 ELK包含三部分软件 ElasticSearch用作搜…...

解决 chls.pro/ssl 无法进入问题

使用charles的xdm不知道有没有遇到这样的问题。手机上访问 chls.pro/ssl 就始终进不去了… 各种检查&#xff0c;ip地址、证书&#xff0c;ssl设置等等都正常&#xff0c;就是进不去。 在一位好心人的提醒下得到了一个解决办法。那就是换一个地址 最新地址是: charlesproxy…...

Rust 游戏开发框架指南

Rust 游戏开发框架指南 主流游戏引擎 1. Bevy 最受欢迎的 Rust 游戏引擎之一&#xff0c;基于 ECS&#xff08;实体组件系统&#xff09;架构。 特点&#xff1a; &#x1f680; 高性能 ECS 系统&#x1f4e6; 热重载支持&#x1f3a8; 现代渲染器&#x1f50a; 内置音频系…...

hadoop3.3和hive4.0安装——单节点

hadoop3.3x和hive4.0安装部署 为什么我要安装hive4.0&#xff0c;因为阿里云镜像只有hive4.0 软件相互兼容性版本 系统centos7 uname -a如果内核3.0以上可以用 安装jdk1.8以上的版本&#xff08;配置好环境变量&#xff09; hadoop3.3.x与hive4.0.x 创建目录 mkdir -p /us…...

centos安装golang

1.下载golang golang所有版本网址 https://studygolang.com/dl //下载并解压到/usr/local文件下 wget https://studygolang.com/dl/golang/go1.18.3.linux-amd64.tar.gz //解压并复制到/user/local文件夹下 tar -C /usr/local -zxf go1.18.3.linux-amd64.tar.gz 2.编辑环境变…...

博图 linucx vmware

电脑与 PLC 的连接 博图装在虚拟机里&#xff0c;PLC 通过网线与电脑连接 可以是使用网线直接连接&#xff0c;也可以中间接个路由器或交换机 问题在于虚拟机提供多种网络连接方式&#xff0c;但不是每种都可以与 PLC 建立连接 以 VMware 虚拟机为例&#xff0c;进入编辑/虚拟网…...

Service Work离线体验与性能优化

Service Work离线体验与性能优化 引言 先放个意外事件&#xff0c;万事开头难&#x1f923;&#x1f923;&#x1f923; 原计划是分享离线应用与数据资源缓存的应用实践&#xff0c;结果发现这一技术已被web标准废弃 曾经做过一个PC应用&#xff0c;业务需求要求应用具备容灾…...

Unity 语音转文字 Vosk 离线库

市场有很多语音库&#xff0c;这里介绍Vosk SDK 除了支持untiy外还有原生开发服务器等 目录 安装unity示例demo下载语音训练文件运行demo结尾一键三联 注意事项 有可能debug出来的文本是空的&#xff0c;&#xff08;确保麦克风正常&#xff0c;且索引正确&#xff09;分大…...