【搜索】【广搜模板】
ACM模板
C++queue的应用
struct note{ int x; //横坐标 int step; //步数 int y; //纵坐标
}; void BFS(note front_head)//BFS
{ queue<note>Q;//建立空队列 Q.push(front_head);//将起始点加入队列 note next_queue;//下一个队列元素 note now_head;//当前队头元素 while(!Q.empty())//循环条件是队列不为空 { now_head = Q.front();//找到当前队头元素 Q.pop();//已经找到则出队 for(i = 0; i < 8; i ++)//搜索8个方向 { next_queue.x = now_head.x + NEXT[i][0]; next_queue.y = now_head.y + NEXT[i][1]; if(next_queue.x < 0||next_queue.y <0||next_queue.x > 7||next_queue.y > 7) continue; if(book[next_queue.x ][next_queue.y ]!= 1)//没有走过该点 { book[next_queue.x ][next_queue.y ] = 1; next_queue.step = now_queue.step+1; Q.push(next_queue);//将找到满足条件的下一个队列元素加入队尾 //如果下一个队列元素满足终止条件,结束函数 if(next_queue.x == end_i&&next_queue.y == end_j) { step = next_queue.step; return; }} } } return;
}
转载于:https://www.cnblogs.com/hellocheng/p/7350089.html
【搜索】【广搜模板】相关推荐
- 45行代码AC_2017年第八届蓝桥杯C/C++ A组第二题(广搜模板+解题报告)
问题描述 有9只盘子,排成1个圆圈. 其中8只盘子内装着8只蚱蜢,有一个是空盘. 我们把这些蚱蜢顺时针编号为 1~8 每只蚱蜢都可以跳到相邻的空盘中, 也可以再用点力,越过一个相邻的蚱蜢跳到空盘中 ...
- 【搜索-广搜】 迷宫的最短路径
题目: 给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置.试求出起点到终点的最小步数.(本题假定迷宫是有 ...
- 搜索 —— 广搜的优化技巧
[例题] 连连看(HDU-1175)(简单推导):点击这里 字串变换(洛谷-P1032)(string的使用):点击这里 非常可乐(HDU-1495)(三维BFS):点击这里 Mud Puddles( ...
- 深搜和广搜的原理及优缺点
深搜原理 深搜,顾名思义,是深入其中.直取结果的一种搜索方法. 如果深搜是一个人,那么他的性格一定倔得像头牛!他从一点出发去旅游,只朝着一个方向走,除非路断了,他绝不改变方向!除非四个方向全都不通或遇 ...
- 算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记
算法学习 (门徒计划)3-3 深搜(DFS)与广搜(BFS)及经典问题 学习笔记 前言 深搜与广搜 搜索的核心概念 问题求解树 搜索剪枝和优化 问题求解树的状态 对比深搜与广搜 DFS-深度(deep ...
- 广搜(bfs)模板太好用了!bfs详细讲解--超详细题目分析(持续更新题目----)【算法分享】
广搜讲解目录 广搜回顾 广搜题目 noj1541八数码问题 题目描述: 题目要求即样例 题目分析 题解代码[注解详细]---理解BFS noj1652 僵尸来了 题目描述 题目要求及样例 题目分析 题 ...
- 简单深搜广搜基本模板
简单搜索 DFS: 剪枝,条件 容易超时,超时后基本就是剪枝的问题/无限递归?,或者用广搜试试? 模板(自己的理解) int n,m;//一般输入的行列数/边界 int mov[4][2] = {1, ...
- 算法提高课-搜索-双向广搜 AcWing 190. 字串变换:bfs、双向bfs、queue和unordered_map
题目分析 来源:acwing 分析: 双向广搜主要用在最小步数模型(也称状态图模型)里面,这里整个状态空间一般是指数级别的,用双向广搜可以极大地提高运行效率. 双向广搜,顾名思义,就是从起点和终点都进 ...
- 广搜--(搜索的第一道题)图像有用区域
点这里点击打开链接 今天开始迈出了学习广搜的第一步,因为之前感觉搜索很难理解都没有固定的模式,但是觉得现在又到了不得不面对的时刻.一开始想用递归写的,就是想在外围加上1,然后就遍历一下如果不是0的就让 ...
最新文章
- 你走对Linux学习之路了吗?
- 三、RabbitMQ安装
- 给 AI 讲故事,如何教它脑补画面?
- Java聊天室2.0版本
- python中修饰器的优点和作用_Python入门基础教程之装饰器
- 面试题-JQuery里Ajax的原理是怎样的?
- Hbase之过滤器的使用
- ALTOVA XMLSpy 2013中文版下载教程及简单运用
- 如何做一个被领导喜欢的实施顾问
- Heartbeat配置方案
- Python2与Python3的区别(二):raw_input与input
- Uber 叫车时,弹出以下代码导致无法打车(An email confirmation has been sent to...),解决办法...
- jquery的点击事件驱动获取值
- C/C++指针类型与引用类型的基本使用
- [CISCN2019 华东南赛区]Web4
- Java工程师必备软件大合集,手把手教你如何下载和安装
- roscore失败,提示RLException: Unable to contact my own server
- nn.CrossEntropyLoss总结
- JDK1.8u安装教程
- [Layui]主页tab选项卡操作(刷新页面,刷新选项卡,关闭,关闭其他,全部关闭)
热门文章
- Robust Quasistatic Finite Elements and Flesh Simulation
- 8086微型计算机结构功能,3.2 8086微处理器的功能结构
- 光通量发光强度照度亮度关系_照度、强光、光通量之间是什么关系
- 集成学习(三)——LightGBM
- virtualbox+vagrant快速创建虚拟机
- 实现用于意图识别的文本分类神经网络
- 深度学习TensorFlow的55个经典案例
- c fun函数求n个整数的平均值_Python语法示例——函数
- php监考,科学网—监考与被监考 - 张珑的博文
- 用curl访问HTTPS站点并登录