你已经在脑海中解决了 Project Euler 的所有问题。现在是时候面对一个你可能听说过的问题了,即旅行商问题(The Traveling Salesperson),其判定版本是 NP 完全的。我们考虑在一个二维矩形网格上的旅行商问题,其中每个单元格都可以从其相邻的单元格(上、下、左、右)到达,并且你可以根据需要多次访问一个单元格(尽管大多数单元格并不那么有趣,所以你可能不想频繁访问它们)。
输入格式
输入的第一行包含一个整数 $T$,表示测试用例的数量。接下来是两个整数 $X$ 和 $Y$,分别表示网格的宽度和高度。随后有 $Y$ 行,每行包含 $X$ 个字符,其中字符 'C' 表示一个单元格,字符 'S' 表示起点。
输出格式
对于每个测试用例,输出从 'S' 出发并回到 'S',且至少访问每个单元格一次所需的最少步数。
由于你意识到这不会有任何结果,请在所有测试用例输出结束后,单独占一行输出 "LOL"(不含引号,整个运行过程仅输出一次,而非每个测试用例输出一次)。
数据范围
- $0 < T \leq 50$
- $0 < X \leq 100$
- $0 < Y \leq 100$
- 每个测试用例中的所有字符均为 'C',只有一个字符为 'S'。
样例
输入格式 1
1 4 4 CCCC CCCC CSCC CCCC
输出格式 1
16 LOL