关于bfs的原理和应用
1,bfs 是个什么玩意???
这是百度对于bfs的描述,太复杂了?没关系,我用一个走迷宫的题目来带大家了解bfs;
题目
对应代码
memset(d, -1, sizeof d);d[0][0] = 0;
相关代码
可以使用方向向量的方式
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
const int N = 110;int n, m;
int g[N][N];
int d[N][N];
PII q[N * N];int bfs(){int hh = 0, tt = 0;q[0] = {0, 0};memset(d, -1, sizeof d);d[0][0] = 0; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};while(hh <= tt){auto t = q[hh ++];for(int i = 0; i < 4; i++){int x = t.first + dx[i], y = t.second + dy[i];if(x >= 0 && x < n && y >= 0 && y < m && g[x][y] == 0 && d[x][y] == -1){d[x][y] = d[t.first][t.second] + 1;q[++ tt] = {x, y};}}}return d[n - 1][m -1];
}
总结
我对于他的理解有点像是波纹一样(波纹疾走 )
谢谢大家
关于bfs的原理和应用相关推荐
- 返璞归真的Linux BFS调度器
自Linux 2.6以来(严格说应该是2.5),O(n)调度器被人们认为是一种千年之前就应该抛弃的东西被重重的甩开了,此后出现了O(1),CFS等,再也没人提起O(n)了.说实话,Linux的调度器远 ...
- 人工智能课后作业_python实现广度优先遍历搜索(BFS)(附源码)
2 广度优先遍历搜索(BFS) 2.1算法介绍 2.2实验代码 2.3实验结果 2.4实验总结 2.1算法介绍 广度优先搜索算法(英语:Breadth-First-Search,缩写为BFS),是一种 ...
- 神机百炼2.44-点的层次BFS
点的层次BFS 食用指南: 题目描述: 题目分析: 算法原理: 模板算法: 本题特殊点: 1. 回顾静态邻接表 2. 回顾BFS 3. 注意点 代码实现: 代码误区: 1.为什么队头出队时检验是否达到 ...
- 蓝桥杯精选赛题算法系列——全球变暖——BFS
已收录此专栏. 我们先来举个例子来了解一下BFS的原理: 以老鼠走迷宫为例,迷宫内的路错综复杂,老鼠从入口进去后,怎么才能找到出口? BFS:一群老鼠走迷宫.假设老鼠无限多,这群老鼠进去后,在每个路口 ...
- Java后端向前端传递数据,挥泪整理面经
腾讯 一面(支付) 1.jqc的介绍 2.如何确保多台机器不会重复消费 3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚) 4.如何防止数据库单点问题 8.paxos算法 9.ra ...
- 十面阿里,七面头条,你猜我进阿里没?
作者:jkgeekjack 链接:https://www.nowcoder.com/discuss/80156 作者简介 本人是双非末流一本,大三,CS专业,有百度实习经历 过程 先解释一下十面阿里, ...
- Linux调度系统全景指南(终结篇)
点击上方蓝字关注公众号,更多经典内容等着你 | 导语本文主要是讲Linux的调度系统, 本篇是终结篇,主要讲当前多核系统调度策略和调度优化,调度可以说是操作系统的灵魂,为了让CPU资源利用最大化,Li ...
- 【微信小程序】使用Hystrix的插件机制
前言 在本篇文章开始前,我想想来回答一个问题:我为什么要写这一篇关于面试的文章? 原因有三:第一,我想为每一个为梦想时刻准备着的"有心人"尽一份自己的力量,提供一份高度精华的Jav ...
- java静态函数调用,书籍+视频+学习笔记+技能提升资源库
腾讯 一面(支付) 1.jqc的介绍 2.如何确保多台机器不会重复消费 3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚) 4.如何防止数据库单点问题 8.paxos算法 9.ra ...
最新文章
- source insight删除保存路径为中文的project工程项目报错的解决办法
- 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
- 网曝 Solaris 系统被砍,开发团队将大半被解雇
- 简单的 php 防注入、防跨站 函数
- No pubspec.yaml file found. This command should be run from the root of your Flutter project. Do not
- 吴翰清:云计算安全是“皇帝的新装”么?
- 电脑磁盘分区数据丢失怎么办 磁盘分区丢失的数据怎么恢复
- win10计算机桌面快捷方式,win10发送到桌面快捷方式不见了如何解决_win10电脑没有发送到桌面快捷方式选项怎么恢复...
- 蓝牙(BlueTooth)技术标准
- VB编程:UCase转大写,LCase转小写-4_彭世瑜_新浪博客
- 【Centos】Docker停止容器服务后,磁盘I/O仍然迟迟不下降。(未解决)
- ps导出发生未知错误,怎么办?
- Java中Double与BigDecimal的互转,Date和LocalDateTime互转
- 编写电话号码查询系统
- Ubuntu18.04/20.04复现算法RandLa-net 数据集S3DIS
- iOS--触碰响应UIResponder UIGestureRecognizer
- 异常检测之指数平滑(利用elasticsearch来实现)
- 误码率SER和误比特率BER的关系
- Marketing and Monetizing on YouTube YouTube上的营销和货币化 Lynda课程中文字幕
- 安顺控股冲刺A股上市:拟募资6.5亿元,九成收入来自天然气销售
热门文章
- 活动安排(贪心算法)C/C++
- c语言界面函数,C语言图形界面常用函数集锦
- php简单网页课程设计报告,PHP课程设计报告30634.doc
- UI组件之AdapterView及其子类(一)三种Adapter适配器填充ListView
- Ubuntu Linux 锐捷 ruijie 认证成功 校园网 西电 老校区 新校区
- 人工智能数学基础4:离差、平均差、方差、标准差、协方差、皮尔森相关系数
- 2022-2028年中国科幻行业竞争现状及投资策略研究报告
- 定时任务Schedule的使用
- CLion配置opencv环境
- Android 音视频开发(二) -- Camera1 实现预览、拍照功能