一文搞懂:【OpenJ_Bailian

简介: 一文搞懂:【OpenJ_Bailian

"

-->迷宫

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

#include

#include

#include

#include

#include

#include

#include

#include [span style=""color: rgba(0//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDQxMTcwNA==.html

, 0, 255, 1)"">string

#include

#include

#include

#include [span style=""color: rgba(0, 0, 255, 1)"">set

#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;

queueq;

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[span style=""color: rgba(128, 0, 128, 1)"">4; i++)

{

net.x=now.x+dt【i】【0】;

net.y=now.y+dt【i】【1】;

if(net.x>=0&&net.x=0&&net.y

{

q.push(net);

mp【net.x】【net.y】='#';//这里走过 变'.'为'#'即可

}

}

}

if(f==0)

{

cout[""NO""[endl;

return;

}

}

int main()

{

cinT;

while(T--)

{

cinn;

for(int i=0; i

for(int j=0; j

cinmp【i】【j】;

cinsx]sy]ex]ey;

// cout[mp【sx】【sy】["" ""[mp【ex】【ey】[endl;

if(mp【sx】【sy】=='#'||mp【ex】【ey】=='#')//判断初始与结束位置

cout[""NO""[endl;

else

bfs();//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg2ODAwNA==.html

}

}


"
image.png
相关文章
|
机器学习/深度学习 人工智能 运维
10 分钟搞懂 LLMOps
10 分钟搞懂 LLMOps
993 0
|
人工智能 网络协议 算法
5 分钟搞懂 ECN
5 分钟搞懂 ECN
1781 0
|
6月前
|
C#
一文搞懂:一道关于C#linqwhere的面试题
一文搞懂:一道关于C#linqwhere的面试题
47 0
|
6月前
|
数据可视化 API
一文搞懂:【Havok】
一文搞懂:【Havok】
116 0
|
6月前
|
API
一文搞懂:关于串行接口
一文搞懂:关于串行接口
253 0
一文搞懂:_.cloneDeep(value)
一文搞懂:_.cloneDeep(value)
|
6月前
|
机器学习/深度学习
一文搞懂:九度OJ1500出操队形
一文搞懂:九度OJ1500出操队形
21 0
|
6月前
一文搞懂:关于“isbuzy”问题
一文搞懂:关于“isbuzy”问题
32 0
|
6月前
|
前端开发 JavaScript
一文搞懂:【Reduc】ReactCounterExample
一文搞懂:【Reduc】ReactCounterExample
43 0
|
6月前
|
PHP
一文搞懂:yeild理解
一文搞懂:yeild理解
44 0