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的原理和应用相关推荐

  1. 返璞归真的Linux BFS调度器

    自Linux 2.6以来(严格说应该是2.5),O(n)调度器被人们认为是一种千年之前就应该抛弃的东西被重重的甩开了,此后出现了O(1),CFS等,再也没人提起O(n)了.说实话,Linux的调度器远 ...

  2. 人工智能课后作业_python实现广度优先遍历搜索(BFS)(附源码)

    2 广度优先遍历搜索(BFS) 2.1算法介绍 2.2实验代码 2.3实验结果 2.4实验总结 2.1算法介绍 广度优先搜索算法(英语:Breadth-First-Search,缩写为BFS),是一种 ...

  3. 神机百炼2.44-点的层次BFS

    点的层次BFS 食用指南: 题目描述: 题目分析: 算法原理: 模板算法: 本题特殊点: 1. 回顾静态邻接表 2. 回顾BFS 3. 注意点 代码实现: 代码误区: 1.为什么队头出队时检验是否达到 ...

  4. 蓝桥杯精选赛题算法系列——全球变暖——BFS

    已收录此专栏. 我们先来举个例子来了解一下BFS的原理: 以老鼠走迷宫为例,迷宫内的路错综复杂,老鼠从入口进去后,怎么才能找到出口? BFS:一群老鼠走迷宫.假设老鼠无限多,这群老鼠进去后,在每个路口 ...

  5. Java后端向前端传递数据,挥泪整理面经

    腾讯 一面(支付) 1.jqc的介绍 2.如何确保多台机器不会重复消费 3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚) 4.如何防止数据库单点问题 8.paxos算法 9.ra ...

  6. 十面阿里,七面头条,你猜我进阿里没?

    作者:jkgeekjack 链接:https://www.nowcoder.com/discuss/80156 作者简介 本人是双非末流一本,大三,CS专业,有百度实习经历 过程 先解释一下十面阿里, ...

  7. Linux调度系统全景指南(终结篇)

    点击上方蓝字关注公众号,更多经典内容等着你 | 导语本文主要是讲Linux的调度系统, 本篇是终结篇,主要讲当前多核系统调度策略和调度优化,调度可以说是操作系统的灵魂,为了让CPU资源利用最大化,Li ...

  8. 【微信小程序】使用Hystrix的插件机制

    前言 在本篇文章开始前,我想想来回答一个问题:我为什么要写这一篇关于面试的文章? 原因有三:第一,我想为每一个为梦想时刻准备着的"有心人"尽一份自己的力量,提供一份高度精华的Jav ...

  9. java静态函数调用,书籍+视频+学习笔记+技能提升资源库

    腾讯 一面(支付) 1.jqc的介绍 2.如何确保多台机器不会重复消费 3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚) 4.如何防止数据库单点问题 8.paxos算法 9.ra ...

最新文章

  1. 多用户使用一台计算机可设置,《计算机应用基础》试卷(A)
  2. LeetCode Algorithm 451. 根据字符出现频率排序
  3. 小程序点击地图气泡获取气泡_气泡上的气泡
  4. 程序员要掌握的20个实用技巧
  5. linux6.5双屏显示,Redhat 6.5的系统如何设置双显示屏,急急急!
  6. bzoj 5084: hashit
  7. wps软件打不开共享超链接_wps excel的超链接打不开怎么办?
  8. python数据导入spss_spss-数据抽取-拆分与合并
  9. jquery Boxy的使用方法
  10. 王垠:如何掌握所有的程序语言
  11. 广告行业中静态创意和动态创意区别
  12. JavaScript中的“黑话” 1
  13. 前端从一只小白到工作半年的心路历程
  14. canvas实现图像裁剪
  15. 为什么VR依然没有出现烧钱向的3A级游戏?
  16. 想把图像文件转换为DWG文件?光栅矢量化工具了解一下
  17. Pedersen承诺
  18. Unity URP DOTS Animator
  19. 英特尔携手升腾,助力智慧金融业发展
  20. 服务器是由哪些硬件构成的?带你一探究竟!

热门文章

  1. 黑马程序员——C语言基础---基础语法
  2. 加拿大硬币: 奥运选手
  3. 推荐 5 款数据库性能监控软件,附下载
  4. 用什么软件录屏最好?如何快速录制清晰无水印的视频?
  5. 【大数据入门核心技术-HBase】(十)Hbase结合Phoenix的使用
  6. 软考网络工程师怎么学习,用那些书籍?
  7. 空间平面的旋转与位移
  8. 自己做量化交易软件(21)通达信自选股文件的读写程序
  9. 小米开源数据库中间件gaea
  10. 小区物业管理系统-分析设计