死胡同

死胡同

【问题描述】
小Y 刚开始学车,因此他还不会在一个很狭窄的地方掉头。小Y发现他想找的地方必须没有死胡同,因为死胡同是不可能出来的, 除非掉头(假设小Y也不会倒车)。现在,你需要写一个程序,来分析一个地方的地图,研究是否这个地方适合小Y练习开车。

这张地图是包含 R*C 个单元格的,单元格中的“X”代表一个建筑物,单元格中的“.” 代表路面。从一个路面单元格,小 Y 可以向旁边上下左右四个方向的单元格开去,只要开过去的地方同样也是路面。最后,我们要得出这个地图是否包含死胡同,假如从任意一个路面单元格出发,沿着任 何一个可以行驶的方向,我们可以不用掉头就能返回到出发点,那么这个地图就是没有死胡同的。
【输入格式】
第一行一个整数t,表示数据组数。
每组第一行包括两个整数 R 和 C,表示这个地图的大小。
接下来 R 行,每行有 C 个字符,每个字符可能是“X”和“.”。
【输出格式】
t行,每行0表示这个地图没有死胡同,输出1表示这个地图存在死胡同。
【输入样例】
2
5 5
XX.XX
X…X
…..
X…X
XX.XX
3 9
...XXX...
.X.....X.
...XXX...
【输出样例】
1
0
【数据范围与约定】
对于30%的数据:n,m <= 50。
对于100%的数据:n,m<=500。