-->迷宫

 Descriptions:

一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。

Input

第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n (1 <= n <= 100),表示迷宫的规模是n * n的。接下来是一个n * n的矩阵,矩阵中的元素为.或者#。再接下来一行是4个整数ha, la, hb, lb,描述A处在第ha行, 第la列,B处在第hb行, 第lb列。注意到ha, la, hb, lb全部是从0开始计数的。

Output

k行,每行输出对应一个输入。能办到则输出“YES”,否则输出“NO”。

Sample Input

2
3
.##
..#
#..
0 0 2 2
5
.....
###.#
..#..
###..
...#.
0 0 4 0

Sample Output

YES
NO

题目链接:
https://vjudge.net/problem/OpenJ_Bailian-2790

经典入门级bfs 迷宫搜索题 先简单判断一下初始位置和结束位置 在进行bfs即可

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
using namespace std;
int T,n,m;
int sx,sy,ex,ey;//初始位置  结束位置
char mp[1005][1005];//原始地图
int dt[][2]= {{1,0},{-1,0},{0,1},{0,-1}};//方向
struct node
{int x,y;//横纵坐标
};
node now,net;
void bfs()
{int f=0;queue<node>q;now.x=sx,now.y=sy;mp[now.x][now.y]='#';//这里走过 变'.'为'#'即可
    q.push(now);while(!q.empty()){now=q.front();q.pop();if(now.x==ex&&now.y==ey)//到达终点
        {f=1;cout<<"YES"<<endl;break;}for(int i=0; i<4; i++){net.x=now.x+dt[i][0];net.y=now.y+dt[i][1];if(net.x>=0&&net.x<n&&net.y>=0&&net.y<n&&mp[net.x][net.y]=='.'){q.push(net);mp[net.x][net.y]='#';//这里走过 变'.'为'#'即可
            }}}if(f==0){cout<<"NO"<<endl;return;}
}
int main()
{cin>>T;while(T--){cin>>n;for(int i=0; i<n; i++)for(int j=0; j<n; j++)cin>>mp[i][j];cin>>sx>>sy>>ex>>ey;
//        cout<<mp[sx][sy]<<" "<<mp[ex][ey]<<endl;if(mp[sx][sy]=='#'||mp[ex][ey]=='#')//判断初始与结束位置cout<<"NO"<<endl;elsebfs();}
}

转载于:https://www.cnblogs.com/sky-stars/p/11135249.html

【OpenJ_Bailian - 2790】迷宫(bfs)相关推荐

  1. 献给阿尔吉侬的花束(二刷,迷宫bfs,模板题)

    文章目录 Question Ideas Code Question 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终 ...

  2. 【动态规划】机器人走迷宫-BFS

    机器人走迷宫-BFS 题目描述:给一个矩阵,0代表可走位置,1代表障碍物 给定起点和终点和行走规则(上.下.左.右),输出最短路径 探寻最短路径-BFS 首先定义两个辅助函数,valid_action ...

  3. 蓝桥杯 python 走迷宫 BFS

    蓝桥杯 python 走迷宫 BFS 题目描述 给定一个 N × × × M 的网格迷宫 G.GG的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示). 已知迷宫的入口位置为 ( ...

  4. adv147(蓝桥杯) 学霸的迷宫 bfs

    问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  5. hdu 1728 逃离迷宫 (bfs)

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. P1141 01迷宫(BFS+记忆化)

    https://www.luogu.org/problemnew/show/P1141 题目描述 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样 ...

  7. hdu_1728_逃离迷宫(bfs)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1728 题意:走迷宫,找最小的拐角 题解:对BFS有了新的理解,DFS+剪枝应该也能过,用BFS就要以拐 ...

  8. [蓝桥杯2019初赛]迷宫-bfs+存储路径

    题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能 ...

  9. 2019第十届蓝桥杯B组C++省赛E题迷宫--BFS(倒搜)

    试题 E: 迷宫 本题总分:15 分 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方. 010000 000100 001001 110000 迷宫 ...

最新文章

  1. npm 卸载_GitHub 收购 npm:天下开源是一家,有个爸爸叫微软
  2. 软件稳定性测试的测试点
  3. 气象气候应用在Intel最新处理器Icelake上的性能测评
  4. c#参数修饰符-params
  5. node.js(八 --- express)
  6. 调用远程摄像头进行人脸识别_工地安全:AI如何实现安全帽检测与人脸识别?...
  7. 路径规划之曲线插值拟合算法分析
  8. 邮件整体解决方案_为什么推荐用EmailCamel来做Shopify邮件营销?
  9. 22.c语言各种输入输出与错误处理
  10. 贪心算法及几个常用的例题
  11. MLP-Mixer简介和一些想法
  12. 小米重大变革:成立十个一级部门大量启用80后 向雷军汇报
  13. fmdb和mysql的区别_FMDB介绍和使用
  14. StorageClass
  15. 使用Unity来实现全民K歌唱歌,耳返效果和混响功能
  16. 一起自学SLAM算法:8.3 LOAM算法
  17. double free
  18. python绘制成绩直方图_python如何绘制直方图
  19. 国标GB28181协议视频平台EasyGBS大并发下SIP消息出现重复SN号的解决办法
  20. CAN标准帧与扩展帧两种格式长度的解析

热门文章

  1. MySQL5.7收集表统计信息时对该表上增删改查的影响
  2. oracle生成存储过程示例,oracle创建简单存储过程示例
  3. 用户列表 java_三个jsp页面+Java片段实现的用户登录和用户列表查询[带分页]
  4. visual studio 自带的 宏 没反应_横山宏科幻动漫模型:插图造型怪异的胡佛战车欣赏...
  5. java保留两位小数 四种方式
  6. zookeeper客户端下载与使用
  7. AI 是中性的技术,如何用它更好地为人类服务
  8. Phoenix官方教程 (一) 构建和运行
  9. Linux之使用网络
  10. ueditor样式过滤问题