DFS(入门题,走迷宫)
1185: 走迷宫
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 383 Solved: 155
[Submit][Status][Web Board]
Description
给一张个迷宫,问能否从起点走到终点,只能往上下左右走,不能斜着走
Input
多组测试数据,每组第一行两个正整数,分别为n和m
表示n这个迷宫有n行m列(0<n,m<10)
接着是n行m列,
'#'表示路
‘*’表示墙
‘S’表示起点
‘T’表示终点
Output
每组测试数据输出一个结果,如果能从S走到T,输出“YES”,否则输出“NO”
Sample Input
2 2
S*
#T
3 3
S*#
#T
##
Sample Output
YES
NO
HINT
Source
AC_code:
#include <stdio.h>#include <string.h>char a[15][15];int step_x[]= {-1,1,0,0},step_y[]= {0,0,-1,1};//上下左右四个方向int n,m,f[15][15],flag;void DFS(int x,int y){f[x][y] = 1;//辅助数组,标记一个起点使用过if(a[x][y]=='T'){flag = 1;return;}for(int i = 0; i < 4; i++)//上下左右找路{int xx =x + step_x[i];int yy =y + step_y[i];if(a[xx][yy]!='*'&&!f[xx][yy]&&xx>=0&&xx<n&&yy>=0&&yy<m){DFS(xx,yy);//新起点找路}}}int main(){while(~scanf("%d%d",&n,&m)){memset(f,0,sizeof(f));int start_x,start_y;flag = 0;for(int i = 0; i < n; i++){scanf("%s",a[i]);for(int j = 0; j < m; j++){if(a[i][j]=='S'){start_x = i,start_y = j;}}}DFS(start_x,start_y);if(flag)printf("YES\n");elseprintf("NO\n");}return 0;}
DFS(入门题,走迷宫)相关推荐
- 5978 Problem F 【递归入门】走迷宫
问题 F: [递归入门]走迷宫 时间限制: 1 Sec 内存限制: 128 MB 提交: 128 解决: 46 题目描述 有一个n*m格的迷宫(表示有n行.m列),其中有可走的也有不可走的,如果用1表 ...
- DFS和BFS概念及实践+acwing 842 排列数字(dfs) +acwing 844. 走迷宫(bfs)
DFS (深搜), 也有说就是递归的 执着: 一直搜到底,然后回溯下一个节点 数据结构 : stack (这里的栈,实际上是编译器内部的栈, 所以说也可以看成递归, 递归内部也是调用编译器内部栈) 空 ...
- D题 走迷宫
走迷宫 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 Dr.Kong设计的机器人卡多非常爱玩,它常常偷偷跑出实验室,在某个游乐场玩之不疲.这天卡多又跑出来了,在SJTL ...
- 2017年蓝桥杯c++A组第一题走迷宫
走迷宫 题目描述: X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表 ...
- 编程题走迷宫_洛谷P1238 走迷宫题解
题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个数据来描述的,分别表示 ...
- 编程题走迷宫_C++程序算法题----迷宫(一)
题目: 一天蒜头君掉进了一个迷宫里面,蒜头君想逃出去,可怜的蒜头君连迷宫是否有能逃出去的路都不知道.看在蒜头君这么可怜的份上,就请聪明的你告诉蒜头君是否有可以逃出去的路. 输入格式 第一行输入两个整数 ...
- 编程题走迷宫_编程题——机器人走迷宫 (用C语言)
/*迷宫由 N W S E 组成 踩到N向上走一格 踩到W 向左走一格 踩到S向下走一格 踩到E 向右走一格 输入迷宫行数 列数 不大于10 机器人初始列数(注意 这个列数是从1开始数的) 判断能否走 ...
- dfs和bfs走迷宫
数据 10 10 //格子行 列 #S######.# ......#..#.#.##.##.# .#........ ##.##.####....#....# .#######.#....#.... ...
- 编程题走迷宫_迷宫--小学生编程竞赛题目(两种解法,一种简单的推荐)
迷宫是长方形的,有 n 行 m 列个格子.一共有 3 类格子,空地用字符'.' 表示,墙壁用'#'表示,陷阱用'*'表示. 特别地,迷宫中有两个特殊的格子:起点用'S'表示;终点用'E'表示. 起点和 ...
- 问题 F: 【递归入门】走迷宫
题目链接 解决思路 岔路:上下左右 死胡同:到达终点 为了不走回头路或没有重复点,对经过的点 上锁-DFS-解锁 代码 #include<stdio.h> #include<iost ...
最新文章
- 2021新年伊始,25岁“天才少年”曹原再发一篇Nature!9个月的第三篇Nature!
- android分钟倒计时,Android 三十分钟倒计时
- 联想将推出全新系列笔记本
- php 接口升级,PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [6] 版本升级接口开发...
- 深度linux系统反复重启,修复启动
- Apache与Tomcat集群配置
- SQLServer2016安装教程
- fh 幅频特性曲线怎么画fl_开环幅相频率特性曲线和对数相频特性曲线的完整画法...
- 在线问诊第一平台微医引入智齿 构建智慧客服体系
- 袋鼠!沃尔沃的无人车就是搞不定这种动物
- Excel转PDF如何解决显示不全的问题?
- JS + 递归实现细胞分裂
- 【最新排名(按点赞)】投票倒计时三天:继续为你喜欢的征文作品投票吧!...
- 01【股票初级】-【找准入场时机】投资五大流派,好公司投资法,判断单只股票是否便宜?如何找准时机入场?
- linux命令学习一 :touch和mkdir 创建文件和文件夹
- GPS卫星坐标用计算机计算,GPS卫星位置的计算
- JS识别二维码、JS生成二维码
- 大学生须知:毕业当程序员想要提升“核心竞争力”,主要看这六点!
- 解决 ES6 Module 报 Access to script at ‘xx‘ from origin ‘null‘ has been blocked by CORS policy
- 英特尔在建造《银翼杀手》中的世界
热门文章
- ppp chap 加密摘要_“网络工程师培训”基础教程:一文读懂PPP协议
- css表格文字超数量就竖排_求助!!一个非常棘手的问题。就是文字竖排显示的问题...
- 机器学习(一)线性回归
- 粉丝给我发色情app,我反手对色情app渗透,我居然发现了 ....
- python 科学计算设计_用Python做科学计算 高清晰PDF
- lm723大电流可调电源电路图_TE:大电流电源连接器
- linux目录表及功能n鸟哥,鸟哥linux私房菜_笔记_Linux的文件权限与目录配置
- django ajax文件上传,django 之 ajax 篇 上传文件
- Python调用ansible API系列(一)获取资产信息
- 数组中有一个数字出现的次数超过数组长度的一半