ans
x-wangziji
2022-05-04 11:36:11
23
返回题目
#include <bits/stdc++.h>
using namespace std;
int m, n;
char g[20][20];
int dx[4] = { 0, 0, 1, -1 };
int dy[4] = { 1, -1, 0, 0 };
bool vis[20][20];
void dfs(int x, int y) {
if (vis[n][n])
return;
for (int i = 0; i < 4; i++) {
int nx = x + dx[i];
int ny = y + dy[i];
if (nx < 1 || nx > n || ny < 1 || ny > n)
continue;
if (g[nx][ny] == '#')
continue;
if (vis[nx][ny])
continue;
vis[nx][ny] = true;
dfs(nx, ny);
}
}
int main() {
cin >> m;
cin >> n;
while (m--) {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++) cin >> g[i][j];
memset(vis, false, sizeof(vis));
vis[1][1] = true;
dfs(1, 1);
if (vis[n][n])
cout << "YES" << endl;
else
cout << "NO" << endl;
return 0;
}
}
{{ vote && vote.total.up }}