{"trustable":false,"sections":[{"title":"","value":{"format":"MD","content":"给定一个迷宫,迷宫中有四种格子:\n\n\"#\":墙,不能走上去,也不能穿过。\n\" \": 空气,可以走上去。\n\"S\":玩家的起始点。\n\"A\":关键节点,玩家必须要走到所有关键节点过,才能通关。\n\n游戏流程如下:\n\n玩家从 \"S\" 点出发,玩家或玩家的分身在起始点和关键节点均可以召唤分身,分身走到关键节点等同玩家走到关键节点。\n\n请你设计一条路线,使得玩家通关时,玩家和玩家的分身所走的路径总长度最小。\n\n"}},{"title":"Input","value":{"format":"MD","content":"存在 $T(1\\le T \\le 50)$ 组测试数据,在开头第一行给出。\n\n对于每组测试数据:第一行给出迷宫矩阵的列数 $c(1\\le c \\le 50)$ 和行数 $r(1\\le r \\le 50)$ 。\n**注意,这里是先输入列再输入行**\n\n注意!!!原题目数据有bug,需要在 **每一组测试样例的行列数输入结束后,收集一行空行**,使用以下代码即可解决:\n\nchar empty[100];\ngets(empty);\n\n接下来的 $r$ 行内,每行包含 $c$ 个可能含空格的字符,表示迷宫中的元素。\n\n由于存在空格,所以建议用 getline(cin, str) 的方式读入。\n\n迷宫中最多存在 100 个关键节点。\n\n"}},{"title":"Output","value":{"format":"MD","content":"对于每组测试数据,输出一行仅一个整数:玩家和玩家分身通关游戏所走的最小路径总长度。"}},{"title":"Sample","value":{"format":"MD","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2\n6 5\n##### \n#A#A##\n# # A#\n#S ##\n##### \n7 7\n##### \n#AAA###\n# A#\n# S ###\n# #\n#AAA###\n##### \n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e8\n11\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}