广度优先(BFS)

先看一道简单的题,迷宫问题:

洛谷P1746 离开中山路:P1746 离开中山路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<iostream>
#include<cstring>
#include<queue>
#include <utility>
#define N 1002
using namespace std;char g[N][N];
int dist[N][N];
queue< pair<int,int> > q;
int n,x1,y1,x2,y2;int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};void bfs(int x,int y)
{q.push(make_pair(x,y));dist[x][y]=0;while(!q.empty()){pair<int,int> t = q.front();q.pop();for(int i=0;i<4;i++){int a = t.first + dx[i];int b = t.second + dy[i];if(a<1 || a>n || b<1 || b>n) continue;if(g[a][b] != '0') continue;if(dist[a][b] >=0) continue;q.push(make_pair(a,b));dist[a][b] = dist[t.first][t.second] +1;if(a==x2 && b==y2) return ;}}}int main()
{memset(dist,-1,sizeof(dist));scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%s",g[i] +1);}scanf("%d%d%d%d",&x1,&y1,&x2,&y2);bfs(x1,y1);printf("%d",dist[x2][y2]);return 0;
}

先看一下遍历顺序:

可以看出BFS和DFS有着很大的区别,并不是“一条路,走到黑”。而是根据举例根节点的具体进行遍历。

假如先确定顺序是从左到右,那么有什么办法可以从左到右进行遍历呢?

很难想?那就别想了,直接上答案:队列。先进先出啊。

是不是很神奇?

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

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

相关文章

综合监管云平台 DownFile 任意文件读取漏洞复现

0x01 产品简介 综合监管云平台是一种集成了多种先进技术的信息化平台&#xff0c;旨在通过数据采集、分析、预警和应急处理等功能&#xff0c;实现对各类监管对象的全面、高效、精准管理&#xff0c;综合监管云平台利用“互联网物联网”模式&#xff0c;结合云计算、大数据、边…

春招冲刺百题计划|队列

Java基础复习 Java数组的声明与初始化Java ArrayListJava HashMapJava String 类Java LinkedListJava Deque继承LinkedListJava SetJava 队列 第一题&#xff1a;387. 字符串中的第一个唯一字符 class Solution {public int firstUniqChar(String s) {//最简单的方法就是暴力…

p14数组(2)

数组作为函数的参数 冒泡排序 两两比较 void bubble_sort(int arr[],int sz) {int i0;for(i0;i<sz-1;i){//每一趟冒泡排序int j0;for(j0;j<sz-1-i;j){if(arr[j]>arr[j1]){int tmparr[j];arr[j]arr[j1];arr[j1]tmp;}}} } int main(){int arr[]{9,8,7,6,5,4,3,2,1,0}…

关于woocommerce product data tabs, 特别是additional information

woocommerce product data tabs&#xff0c; 也就是默认的这三个&#xff1a; description additional information reviews 包括如何删除&#xff0c;重命名&#xff0c;改显示顺序等等&#xff0c;参考官方文档&#xff1a; https://woocommerce.com/document/editing-p…

《从零到惊艳:快速唱好一首歌的魔法指南》

对于零基础学唱歌的朋友来说&#xff0c;想要快速学会唱好一首歌并非遥不可及。 第一步&#xff0c;精心选歌。如同选择一把适合自己的宝剑&#xff0c;歌曲的选择至关重要。要挑选一首旋律优美、节奏适中、音域符合自身条件且歌词易于理解和记忆的歌曲。比如一些节奏较为缓慢、…

C# CvDnn部署CoupledTPS实现旋转图像矫正

C# CvDnn部署CoupledTPS实现旋转图像矫正 目录 说明 效果 模型信息 项目 代码 下载 说明 TPAMI2024 - Semi-Supervised Coupled Thin-Plate Spline Model for Rotation Correction and Beyond github地址&#xff1a;https://github.com/nie-lang/CoupledTPS 代码实现…

240710_昇思学习打卡-Day22-LSTM+CRF序列标注

240710_昇思学习打卡-Day22-LSTMCRF序列标注 在正式开始LSTMCRF序列标注之前&#xff0c;我们先来了解一下条件随机场&#xff0c;以下仅做简单介绍。 CRF全称Conditional Random Field&#xff0c;按照名字来理解&#xff0c;条件随机&#xff0c;随机输入&#xff0c;条件输…

ReoGrid代替EXCEL显示数据,可视化修改ReoGrid.Mvvm:ReoGrid绑定模型

ReoGrid 是 C&#xff03; 编写的.NET 电子表格控件&#xff08;类似 Excel&#xff09;。支持单元格合并&#xff0c;边框样式&#xff0c;图案背景颜色&#xff0c;数据格式&#xff0c;冻结&#xff0c;公式&#xff0c;宏和脚本执行&#xff0c;表格事件等。支持 Winform\W…

游戏视频是后期配音好还是边录边配 游戏视频怎么剪辑制作才能火 视频剪辑免费软件

游戏视频后期配音是先配还是先剪&#xff1f;游戏视频后期配音没有统一的准则&#xff0c;可以先配&#xff0c;也可以后配&#xff0c;主要是根据内容而定。游戏视频剪辑在游戏玩家中十分流行&#xff0c;那么&#xff0c;游戏视频怎么剪辑制作&#xff1f;下面让我们以具体的…

ai写作软件哪个好用?这些写作工具值得收藏

在创意写作的世界里&#xff0c;每个字词都是作者情感与灵魂的载体。 但灵感的闪现与文字的成型之间&#xff0c;往往存在着一段漫长且充满挑战的旅程。幸运的是&#xff0c;人工智能技术的崛起带来了AI写作软件&#xff0c;它们不仅能够点燃创作的火花&#xff0c;还能辅助我…

探索 ASTRA.AI:打造低代码多模态 AI 应用的开源平台

声网&#xff08;Agora&#xff09;研发的 ASTRA 平台&#xff0c;作为一款面向大语言模型应用开发的开源解决方案&#xff0c;无疑为 AI 领域注入了新的活力。它巧妙地结合了 BaaS&#xff08;后端即服务&#xff09;概念与大型语言模型的运营&#xff0c;使得创建高性能的生成…

手写redis分布式锁

一个靠谱的分布式锁应该有哪些特点&#xff1f; 1.独占性&#xff1a;任何时候有且仅有一个线程持有锁 2.放死锁&#xff1a;有超时控制机制或撤销操作&#xff0c;得有个释放锁的兜底方案 3.不乱抢&#xff1a;不能张冠李戴&#xff0c;不能unlock别人加的锁 4.可重入性&a…

如何给CAD文件加密丨五种超级简单的CAD图纸加密方法

CAD图纸作为企业核心竞争力的体现&#xff0c;其安全性直接关系到企业的生产效率和市场竞争力。一旦图纸被泄露&#xff0c;竞争对手可能会迅速模仿或改进产品&#xff0c;从而抢占市场份额。此外&#xff0c;图纸的非法获取还可能涉及知识产权纠纷&#xff0c;给企业带来法律风…

镜像加速方法

参考&#xff1a; https://github.com/DaoCloud/public-image-mirror 使用DaoCloud加速&#xff1a; 比如我想在dockerhub下载这个镜像&#xff1a; 本来的命令是&#xff1a; docker pull openjdk:11.0-jdk-slim-buster在要拉取的镜像前&#xff0c;添加前缀&#xff1a;m.…

迅为RK3588S开发板广泛用于边缘技术,人工智能,智能家居,智慧零售,智能网关等

性能强 iTOP-3588S开发板采用瑞芯微RK3588S处理器&#xff0c;是全新一代AloT高端应用芯片&#xff0c;搭载八核64位CPU&#xff0c;四核Cortex-A76和四核Cortex-A55架构主频高达2.4GHZ&#xff0c;8GB内存&#xff0c;32GBEMMC。 四核心架构GPU内置GPU可以完全兼容0penGLES1.1…

数据赋能(144)——开发:数据拆分——影响因素、直接作用、主要特征

影响因素 数据拆分过程中需要考虑的一些影响因素&#xff1a; 数据量和数据增长率&#xff1a; 数据量的大小直接决定了拆分的必要性和可能性。当数据量过大时&#xff0c;拆分可以帮助我们提高查询性能、降低管理复杂度。数据增长率也是考虑因素之一。如果数据增长迅速&…

告别大白嗓子,助唱歌小白华丽转身的秘籍

对于唱歌的小白来说&#xff0c;要去除大白嗓子&#xff0c;可以从以下几个方面入手&#xff1a; 气息控制 进行深呼吸练习&#xff1a;像闻花香一样慢慢地吸气&#xff0c;使气息充满腹部&#xff0c;然后缓缓呼气&#xff0c;感受气息的流动和控制。 练习长音&#xff1a;通…

MFC Ribbon菜单中英实时文切换方法

简介 最近在搞一个老外的项目&#xff0c;本来谈的好好的&#xff0c;纯英文界面。项目接近尾声了&#xff0c;又提出了中英文实时切换的新需求&#xff0c;没办法就只能想办法&#xff0c;毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂&#xff0c;就用纯C编码…

struts2如何防止XSS脚本攻击(XSS防跨站脚本攻击过滤器)

只需要配置一个拦截器即可解决参数内容替换 一、配置web.xml <filter><filter-name>struts-xssFilter</filter-name><filter-class>*.*.filters.XssFilter</filter-class></filter><filter-mapping><filter-name>struts-xss…

国产CPU、国产操作系统、国产服务器,厂商和产品

1、国产CPU 国产CPU的发展正处在一个关键时期&#xff0c;以飞腾、鲲鹏、海光、龙芯、兆芯、申威为代表的厂商正在全力打造“中国芯”。具体分析如下&#xff1a; 飞腾&#xff1a;由中国电子信息产业集团等单位联合成立&#xff0c;基于ARM V8架构永久授权&#xff0c;拥有覆…