#include <stdio.h>
int sign = 0, IN_m, IN_n, OUT_m, OUT_n;
char MAZE[20][20];
void SearchMaze (int x, int y);
int main ()
{
int i, j, k, ans[100];
int times;
scanf ("%d", ×);
for (i = 0; i < times; i++)
{
sign = 0;
scanf ("%d%d", &IN_m, &IN_n);
scanf ("%d%d", &OUT_m, &OUT_n);
getchar ();
for (k = 0; k < 20; k++)
{
for (j = 0; j < 20; j++)
{
scanf ("%c", &MAZE[k][j]);
}
getchar ();
}
SearchMaze (IN_m, IN_n);
ans[i] = sign;
}
for (i = 0; i < times; i++)
{
if (ans[i] == 1) printf ("Yes\n");
else printf ("No\n");
}
return 0;
}
void SearchMaze (int x, int y)
{
if (x == OUT_m && y == OUT_n) sign = 1;
else if (x < 0 || x >= 20 || y < 0 || y >= 20 || MAZE[x][y] == 'X' || MAZE[x][y] == 'q')
{
return ;
}
else
{
MAZE[x][y] = 'q';
SearchMaze (x - 1, y);
SearchMaze (x + 1, y);
SearchMaze (x, y + 1);
SearchMaze (x, y - 1);
}
}
[NOJ][算法实验二]1009.迷宫问题
最新推荐文章于 2020-11-21 18:08:40 发布