NC14572. 走出迷宫
描述
输入描述
本题包含多组数据。
每组数据先输入两个数字N,M
接下来N行,每行M个字符,表示地图的状态。
数据范围:
2<=N,M<=500
保证有一个起点S,同时保证有一个终点E.
输出描述
每组数据输出一行,如果小明能够从起点走到终点,那么输出Yes,否则输出No
示例1
输入:
3 3 S.. ..E ... 3 3 S## ### ##E
输出:
Yes No
C++ 解法, 执行用时: 142ms, 内存消耗: 664K, 提交时间: 2022-06-06 09:19:50
#include<bits/stdc++.h> using namespace std; char a[500][500]; int n,m; bool c=0; void dfs(int x,int y) { if(x>n||y>m) return; if(a[x][y]=='#') return; if(a[x][y]=='E') { c=1; return; } dfs(x+1,y); dfs(x,y+1); } int main(){ while(cin>>n>>m) { memset(a,0,sizeof(a)); c=0; for(int i=0;i<n;i++){ cin>>a[i]; } dfs(0,0); if(c){ cout<<"Yes"<<endl; } else cout<<"No"<<endl; } }