{"trustable":false,"sections":[{"title":"题目描述","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e某个叫做\"实获书院\"神秘的伞兵飞机的北部有一个非常大而复杂的迷宫。迷宫被分成几个区块,每个区块要么被岩石填满,无法通行,要么是自由、可通行的。在每一个可通行区块的中央,地板上有一个小钩子。神奇的LBW发现其中的两个钩子需要用一根绳子连接起来,绳子穿过两个钩子之间的区块的钩子。当绳子系上时,LBW也就可以开挂了。问题是我们不知道要连接哪些钩子。这也意味着绳子的所需要长度是未知的。你需要帮助LBW确定连接正确钩子以打开通往实获书院所需要的绳子的最大长度. \u003c/div\u003e"}},{"title":"输入格式","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e输入第一行有共T个测试数据。之后每个测试数据第一行包含两个整数C和R(3 \u003c\u003d C,R \u003c\u003d 1000)表示列数和行数。紧接着就是R行,每行包含C个字符。这些字符指定了迷宫。它们要么是井号(#),要么是句号(.)。井号表示充满岩石的区块,句号表示可自由通行的区块。只能在相邻的区块之间行走,相邻区块则是共享一条边的区块。LBW不能斜行,也不可以走出迷宫(鬼知道为什么不行)。\n\u003cbr\u003e迷宫的设计方式使任意两个自由块之间正好有一条路径。因此,如果我们找到合适的钩子来连接,就可以轻而易举找到连接它们的正确路径。 \u003c/div\u003e"}},{"title":"输出格式","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e程序的输出为每个测试数据用一行输出。该行必须包含“Maximum rope length is X”一句,其中\"X\"是答案长度,以区块为单位测量。 \u003c/div\u003e"}},{"title":"样例输入","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003e2\n3 3\n###\n#.#\n###\n7 6\n#######\n#.#.###\n#.#.###\n#.#.#.#\n#.....#\n#######\u003c/pre\u003e"}},{"title":"样例输出","value":{"format":"HTML","content":"\u003cpre class\u003d\"sio\"\u003eMaximum rope length is 0.\nMaximum rope length is 8.\n[LBW准备就绪!]\n[PS:第一个样例是要通过0个区块,第二个是要通过8个区块]\u003c/pre\u003e"}},{"title":"提示","value":{"format":"HTML","content":"\u003cdiv class\u003d\"ptx\" lang\u003d\"en-US\"\u003e投入巨大,建议使用scanf。\n\u003cbr\u003e如果使用递归,可能是堆栈溢出。现在C++ +C的堆栈大小大于g++/gcc\u003c/div \u003e"}}]}