问题 4364 --机器人

4364: 机器人

题目描述

  从前在月球上有一个机器人。
            月球可以看作一个n*m的网格图,每个格子有三种可能:空地,障碍,机器人(有且仅有一个),现在地面指挥中心想让机器人在月球上行走,每次可以发送一个指令,为U-往上走、D-往下走、L-往左走、R-往右走的其中之一。            当机器人接收到一个行走指令时,如果即将到达的位置为障碍物,那么机器人将留在原地,否则机器人向对应方向走一步,如果其走出边界那么立即死亡。
            地面指挥中心当然不想让机器人就这么挂掉,因此其定义一个操作序列是安全的,当且仅当机器人按此操作序列走不会死亡。
            但是从地球向月球发信息不是个容易的事,而且有时候某些指令还会在茫茫宇宙中被吞没,比如指挥中心传出去RUR指令,到机器人那里就可能变成RR或者变成U,因此定义一个操作序列是绝对安全的当且仅当其任意子序列都是安全的。
            现在地面指挥中心想知道,对于某一个地图,绝对安全的操作序列最长可以到多少,如果存在一个长度为正无穷的这样的序列,那么输出-1。

输入

第一行一个正整数T,表示数据组数。
            接下来一共T组数据,每组数据第一行有两个正整数n,m,表示网格图的大小,接下来n行,每行m个字符,表示这张网格图。
            其中字符“.”表示空地,“#”表示障碍物,“S”表示机器人所在位置。

输出

 一共T行,每行一个整数,表示答案。

样例输入输出

输入#1 复制
3
5 5
#####
#...#
#.S.#
#...#
#####
1 7
S......
5 8
#.######
#.#..S.#
#.#.##.#
#......#
########
输出#1 复制
-1
6
-1

提示

对于$30\%$的数据,$n,m\le 5$
 对于$100\%$的数据,$T\le 50,\ 1\le n,m\le 50$

序号 标题 作者 发表时间 费用 订购数 操作