SP11516 MAKEMAZE - VALIDATE THE MAZE
题目描述
**迷宫生成**
在计算机科学中,有很多种算法可以用来生成迷宫(相关信息可参考:[迷宫生成算法 - 维基百科](http://en.wikipedia.org/wiki/Maze_generation_algorithm))。一旦生成出迷宫,我们就需要验证它是否符合有效迷宫的标准。一个有效的迷宫必须满足以下条件:
- 只有一个入口和一个出口(即边界上有且只有两个开口)
- 从入口到出口之间必须存在至少一条路径
给定一个迷宫,你需要判断它是“有效”还是“无效”。
输入格式
输入的第一行为整数 $t$,表示测试用例的个数。接下来的每个测试用例,第一行包含两个整数 $m$ 和 $n$,分别表示迷宫的行数和列数。接下来是一个 $m \times n$ 的矩阵 $M$,用来描述迷宫结构。矩阵中,$M[i][j] = \#$ 表示位置是墙,$M[i][j] = \text{.}$ 表示位置是空地。
输出格式
对于每个测试用例,判断迷宫是否有效,并输出“valid”或“invalid”。
说明/提示
- $1 \le t \le 10000$
- $1 \le m \le 20$
- $1 \le n \le 20$
### 示例输入:
```
6
4 4
####
#...
#.##
#.##
5 5
#.###
#..##
##..#
#.#.#
###.#
1 1
.
5 1
#
#
.
.
#
2 2
#.
.#
3 4
#..#
#.##
#.##
```
### 示例输出:
```
valid
valid
invalid
valid
invalid
invalid
```
**本翻译由 AI 自动生成**