1215:迷宫

简介: 1215:迷宫

1215:迷宫

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

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

【输入】

第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开始计数的。

【输出】

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

【输入样例】

2

3

.##

..#

#..

0 0 2 2

5

.....

###.#

..#..

###..

...#.

0 0 4 0

【输出样例】

YES

NO

【来源】

No

1. //深搜
2. #include<iostream>
3. #include<cstdio>
4. using namespace std;
5. int dx[4]={0,1,0,-1};
6. int dy[4]={-1,0,1,0};
7. int k,n,ya,xa,yb,xb;
8. char str;
9. bool s[101][101],tem;
10. int nx,ny;
11. int dfs(int y,int x)
12. {
13.   for(int i=0;i<4;i++){
14.     nx=x+dx[i];
15.     ny=y+dy[i];
16.     if(nx>=0&&nx<n&&ny>=0&&ny<n&&(!s[ny][nx])){
17.       s[ny][nx]=true;
18.       if(nx==xb&&ny==yb){
19.         cout<<"YES"<<endl;
20.         tem=true;
21.         break;
22.       }
23.       else dfs(ny,nx);
24.     }
25.   }
26. }
27. int main()
28. {
29.   cin>>k;
30.   for(int t=1;t<=k;t++){
31.     cin>>n;
32.     tem=false;
33.     for(int i=0;i<n;i++)
34.       for(int j=0;j<n;j++){
35.         cin>>str;
36.         if(str=='.') s[i][j]=false;
37.         else s[i][j]=true;
38.       }
39.     cin>>ya>>xa>>yb>>xb;
40.     if(s[ya][xa]||s[yb][xb]){
41.       cout<<"NO"<<endl;
42.       continue;
43.     }
44.     else dfs(ya,xa);
45.     if(!tem) cout<<"NO"<<endl;
46.   }
47.   return 0;
48.  }
1. //广搜
2. #include<iostream>
3. #include<cstdio>
4. #include<cstring>
5. using namespace std;
6. int dx[4]={0,1,0,-1};
7. int dy[4]={-1,0,1,0};
8. bool a[101][101];
9. char c[101][101]={0};
10. int dl[10005][4];
11. int main()
12. {
13.   int k,n,x,y,xl,yl,xx,yy,t,w,f,s;
14.   cin>>k;
15.   for(int s=1;s<=k;s++){
16.     memset(a,0,sizeof(a));
17.     memset(dl,0,sizeof(dl));
18.     t=1,w=2,f=0;
19.     cin>>n;
20.     for(int i=0;i<n;i++)
21.       for(int j=0;j<n;j++) cin>>c[i][j];
22.     cin>>x>>y>>xl>>yl;
23.     if(c[x][y]=='#'||c[xl][yl]=='#')  cout<<"NO"<<endl;
24.     else {
25.       a[x][y]=true;
26.       dl[1][1]=x;
27.       dl[1][2]=y;
28.       while(t<w){
29.         for(int i=0;i<4;i++){
30.           xx=dl[t][1]+dx[i];
31.           yy=dl[t][2]+dy[i];
32.           if(xx<0||xx>n-1||yy<0||yy>n-1) continue;
33.           if(c[xx][yy]!='#'&&!a[xx][yy]){
34.             a[xx][yy]=true;
35.             dl[w][1]=xx;
36.             dl[w][2]=yy;
37.             w++; 
38.           }
39.           if(xx==xl&&yy==yl){
40.             cout<<"YES"<<endl;
41.             f=1;
42.             break;
43.           }
44.         }
45.         if(f==1) break;
46.         t++;
47.       }
48.       if(f==0) cout<<"NO"<<endl;
49.     }
50.   }
51.   return 0;
52.  }

 

相关文章
|
存储 NoSQL 关系型数据库
支持中低频量化交易的单机数据平台
支持中低频量化交易的单机数据平台,使用InfluxDB存储实时交易数据,HDF5存储静态历史数据用于回测。
5121 0
|
开发者
冷门但好看的 VSCode 主题推荐
笔者在使用VSCode进行开发的过程中喜欢没事就逛一逛插件商店里的颜色主题,也看过国内外许多论坛上面的颜色主题推荐,不知不觉已经下载了超过一百个的颜色主题。这篇文章总结了我用过的最舒服的一些颜色主题。
7751 0
冷门但好看的 VSCode 主题推荐
|
存储 安全 算法
KeyManager - 免费申请证书-支持泛域名
KeyManager - 免费申请证书-支持泛域名
1234 0
KeyManager - 免费申请证书-支持泛域名
|
6月前
|
存储 算法 C++
Windows共享文件:探秘C++实现的B树索引算法奇境
在数字化时代,Windows共享文件的高效管理至关重要。B树算法以其自平衡多路搜索特性,在文件索引与存储优化中表现出色。本文探讨B树在Windows共享文件中的应用,通过C++实现具体代码,展示其构建文件索引、优化数据存储的能力,提升文件检索效率。B树通过减少磁盘I/O操作,确保查询高效,为企业和个人提供流畅的文件共享体验。
|
机器学习/深度学习 安全 算法
应用级网关防火墙
【8月更文挑战第17天】
424 4
|
存储 安全 数据安全/隐私保护
🔎Android安全攻防实战!守护你的应用数据安全,让用户放心使用!🛡️
【7月更文挑战第28天】在移动应用盛行的时代,确保Android应用安全性至关重要。本文以问答形式探讨了主要安全威胁(如逆向工程、数据窃取)及其对策。建议使用代码混淆、签名验证、数据加密等技术来增强应用保护。此外,还推荐了加密API、HTTPS通信、代码审计等措施来进一步加强安全性。综上所述,全面的安全策略对于构建安全可靠的应用环境必不可少。#Android #应用安全 #代码混淆 #数据加密
337 3
|
云安全 存储 人工智能
云启智能新纪元,2024可信云大会亮点抢先看!
2024年可信云大会将于7月23-24日在京举行,聚焦云计算与人工智能融合,探讨智算服务与大模型云服务。
526 0
|
SQL 存储 Python
Microsoft SQL Server 编写汉字转拼音函数
Microsoft SQL Server 编写汉字转拼音函数
|
机器学习/深度学习 分布式计算 大数据
【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)
【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)
195 1
|
人工智能 安全 Cloud Native
5 分钟搞懂 NESAS
5 分钟搞懂 NESAS
338 0