CODEVS-1215迷宫
迷宫
原题:传送门
在N*N的迷宫内,“#”为墙,“.”为路,“s”为起点,“e”为终点,一共4个方向可以走。从左上角((0,0)“s”)位置处走到右下角((n-1,n-1)“e”)位置处,可以走通则输出YES,不可以走则输出NO。
输入的第一行为一个整数m,表示迷宫的数量。
其后每个迷宫数据的第一行为一个整数n(n≤16),表示迷宫的边长,接下来的n行每行n个字符,字符之间没有空格分隔。
输出有m行,每行对应的迷宫能走,则输出YES,否则输出NO。
1 7 s...##. .#..... ....... ..#.... ..#...# ###...# ......e
YES 解题思路:1.首先,题目要求很明确从左上角s能不能走到右下角e,其实起点和终点在哪里都无所谓,我们只需要找到一条路到达终点即可 2.虽然很容易想到是深搜,但是不需要回溯(没说求出最短距离,可以自己练练),所以深搜时向4个方向都递归一次即可 3.还需要设置一个标记数组mark,避免陷入死循环中(一直在转圈) 核心代码:
1 #include<iostream> 2 using namespace std; 3 char mi[1000][1000]; 4 int ma[1000][1000], mark = 0, ax, ay; 5 int m, n; 6 int z, j, haha; 7 8 void dfs(int x, int y) 9 { 10 if (mi[x][y] == 'e') 11 { 12 cout << "YES" << endl; 13 mark = 1; 14 return; 15 } 16 if (x<1 || y<1 || x>n || y>n || mi[x][y] == '#' || ma[x][y] == 1) 17 return; 18 ma[x][y] = 1;//不需要回溯,因为只需要找一种情况 19 dfs(x + 1, y); 20 dfs(x - 1, y); 21 dfs(x, y + 1); 22 dfs(x, y - 1); 23 } 24 int main() 25 { 26 cin >> m; 27 for (int i = 1; i <= m; i++) 28 { 29 cin >> n; 30 for (j = 1; j <= n; j++) 31 for (z = 1; z <= n; z++) 32 { 33 cin >> mi[j][z]; 34 } 35 dfs(1, 1); 36 if (mark == 0) 37 cout << "NO" << endl; 38 } 39 return 0; 40 }
转载于:https://www.cnblogs.com/Diligent-Memory/p/10535102.html
CODEVS-1215迷宫相关推荐
- poj迷宫游戏c语言代码,ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)
题目确实简单,思路很容易出来,难点在于障碍的记录,是BFS迷宫问题中很经典的题目了. POJ2935-Basic Wall Maze 题意:6*6棋盘,有三堵墙,求从给定初始点到给定终点的最短路,输出 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例
题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...
- 信息学奥赛一本通超详细题解,动画图文题解
内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...
- 信息学奥赛一本通(1215:迷宫)
1215:迷宫 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 29437 通过数: 8772 [题目描述] 一天Extense在森林里探险的时候不小心走入 ...
- 信息奥赛一本通1215:迷宫
[题目描述] 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某 ...
- 搜索与回溯 1215:迷宫
[题目描述] 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行.同时当Extense处在某 ...
- codevs——T1337 银行里的迷宫
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 楚楚每一次都在你的帮助下过了一关又一关(比如他开宴会).这一次,你的 ...
- 【信息学奥赛一本通】1215:迷宫(bfs版)
[题目描述] 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n×n的格点组成,每个格点只有2种状态,'.'和'#',前者表示可以通行后者表示不能通行.同时当Extense处 ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
最新文章
- [VC6] 图像文件格式数据查看器
- Performance — 前端性能监控利器
- Go语言竟成恶意软件的最爱!4年来Go编写的恶意软件飙增2000%,网友:这也能怪Go?...
- Linux - Red Hat 7.3 介绍安装
- 小白袍 -- Chapter 1 Java中的Encode与Decode
- 置顶带滚动效果_前端面试:如何实现轮播图效果?
- 深入理解alias, alias_method和alias_method_chain
- 语言条件语序心得_教师心得:提高34岁幼儿口语表达能力的策略
- 冒泡排序法 - python版详解
- java学习之路之播放一首简单的音乐
- 服务器监控工具_8款服务器和应用性能监控工具
- 机器学习实战(二)决策树DT(Decision Tree、ID3算法)
- python爬取邮件内容_python 定时爬取内容并发送报告到指定邮箱
- 解析Disruptor:写入ring buffer
- 有没有这样一种程序员写代码的利器
- 应急指挥调度管理系统|城市综合应急指挥调度系统
- python3 gzip解压_使用 Python 解压缩 gzip 数据流
- Ques1,debug模式打不开的原因
- Codeforces_714_A
- 计算机打印机共享失败,打印机共享失败终极解决办法
热门文章
- 在IE7 中遇到的几个小问题,有解决方案
- shell脚本 获取第几行 第几列 的命令 awk sed
- python笔记01_高级特性和函数式编程
- 报表性能优化方案之单数据集分页SQL实现层式报表
- AS3.0常用第三方类库:TweenMax
- python3.8.2安装ipython_CentOS系统 python3+python2 Ipython安装
- ddr老化测试_手把手教你评估和测试固态存储【深度】
- python 人脸识别调整人脸大的距离_Python 人脸识别就多简单,看这个就够了!
- (第三章)查看数据库
- vue的main.js讲解一