3 条题解
-
1
纯GCC版:
#include <stdio.h> int t, n, sx, sy, ex, ey, xx, yy, dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0}; char a[100][100]; short flag; short check(int x, int y) { return x >= 0 && x < n && y >= 0 && y < n && a[x][y] == '.'; } void dfs(int sx, int sy) { if(sx == ex && sy == ey) { flag = 1; return; } a[sx][sy] = '#'; for(int i = 0; i < 4; i ++) { xx = sx + dx[i]; yy = sy + dy[i]; if(check(xx, yy)) dfs(xx, yy); } return; } int main() { scanf("%d\n", &t); while(t --) { scanf("%d\n", &n); for(int i = 0; i < n; i ++) scanf("%s", &a[i]); scanf("%d %d %d %d\n", &sx, &sy, &ex, &ey); dfs(sx, sy); puts(flag ? "YES" : "NO"); flag = 0; } return 0; }
信息
- ID
- 3023
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 64
- 已通过
- 33
- 上传者