#include<stdio.h>
char map[20][20];
bool a;
void dfs(int x,int y)
{
if(map[x][y]=='e')
{
a=1;
return;
}
if(map[x][y]=='#')return;
if(map[x][y]=='.')
{
map[x][y]='#';
dfs(x-1,y);
dfs(x,y-1);
dfs(x+1,y);
dfs(x,y+1);
}
if(map[x][y]=='s')
{
map[x][y]='#';
dfs(x+1,y);
dfs(x,y+1);
}
}
int main()
{
int m,n;
int i,j;
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++)
{
scanf("%s",map[i]);
}
for(i=0;i<=n;i++)
{
map[0][i]='#';
map[n+1][i]='#';
}
for(i=0;i<=n;i++)
{
map[i][0]='#';
map[i][n+1]='#';
}
dfs(1,1);
if(a)printf("YES");
else printf("NO");
return 0;
}1215 迷宫
最新推荐文章于 2024-02-01 11:42:35 发布
本文介绍了一个使用深度优先搜索(DFS)算法解决迷宫寻路问题的C语言程序实现。该程序通过递归的方式遍历迷宫地图,寻找从起点到终点的路径。为确保边界条件和障碍物不会被越界访问,程序对迷宫的边界进行了初始化。
1万+

被折叠的 条评论
为什么被折叠?



