博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【OpenJ_Bailian - 2790】迷宫(bfs)
阅读量:4677 次
发布时间:2019-06-09

本文共 1472 字,大约阅读时间需要 4 分钟。

 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

23.##..##..0 0 2 25.....###.#..#..###.....#.0 0 4 0

Sample Output

YESNO

题目链接:

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

AC代码

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#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
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"<
=0&&net.x
=0&&net.y
>T; while(T--) { cin>>n; for(int i=0; i
>mp[i][j]; cin>>sx>>sy>>ex>>ey;// cout<
<<" "<
<

 

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

你可能感兴趣的文章
Java中的Map List Set等集合类
查看>>
大道至简阅读笔记01
查看>>
多个模块使用python logging
查看>>
Linux高级变量
查看>>
php ffmpeg
查看>>
java中== 和 .equals()的区别
查看>>
网络流学习笔记
查看>>
让我们一起Go(二)
查看>>
Linq 中按照多个值进行分组(GroupBy)
查看>>
jquery validate
查看>>
模板函数与模板类
查看>>
Direct2D处理几何图形之间的碰撞检测(下)
查看>>
WPF月视图控件
查看>>
给WPF文字加多条修饰线
查看>>
Android指纹识别
查看>>
C#设计模式之十六观察者模式(Observer Pattern)【行为型】
查看>>
VS中的预先生成事件和后期生成事件
查看>>
JavaScript知识(二)
查看>>
Windows phone 8 学习笔记(7) 设备
查看>>
SQL Server的备份
查看>>