武汉白云黄鹤站∶精华区
发信人: ACMICPC (HUST_ACM2006), 信区: Algorithm
标 题: Astar - 复赛 5.追捕
发信站: 武汉白云黄鹤站 (2006年06月07日23:47:38 星期三), 站内信件
四个小孩正在花园里玩追捕游戏。一个小孩扮演逃亡者,其余三个小孩做追捕者。花园是
一块由N行M列方格组成的草地,花园周围有木栏包围着,不能走出,花园里面还有一些障
碍物不能够通过。游戏可以进行许多回合,每个回合分成两轮,第一轮追捕者可以进行追
捕行动,第二轮逃亡者可以根据前一轮追捕者的行动开展逃亡旅程。在第一轮里,三个追
捕者必须在三人中选择一个人向某个相邻的方格走一步,只有在三个人都没有可以走的相
邻方格时,他们才允许选择停留在原地。在第二轮里,逃亡者也必须选择某个相邻的方格
走一步,如果逃亡者没有任何可走的方格,那么逃亡者就被捕了。四个小孩都不允许走到
有障碍物或其他人的方格上,也不能走出花园,因而,四个小孩总是会位于不同的方格上
面。
这些小孩都是非常聪明的,三个追捕者也是团结一致的。追捕者如果有可以捉到逃亡者的
方法,那么他们就一定不会错过。逃亡者如果有不被捕获的方法,那么他也不会犯错。除
此之外,追捕者会希望尽快地捉到逃亡者,而逃亡者即使在会被捕获的情况下也会尽可能
地拖延时间。给定花园的障碍物的分布图和四个小孩的初始位置,你知道追捕者有方法捉
到逃亡者吗?如果有,他们要经过多少轮后才能捉到逃亡者呢?
输入要求:
输入文件包含多组测试数据。每组测试数据第一行为两个整数N和M(1≤N≤10,1≤M≤10
),为花园方格阵列的行数和列数。接下来N行,每行M个字符,可以为“.”、“#”、“O
”和“X”,分别表示空地、障碍物、追捕者和逃亡者。追捕者总是会有三个,而且四个小
孩一开始也都会在空地上面。
输入样例:
2 2
OO
OX
3 3
OOO
##X
...
3 3
OO#
###
.OX
3 4
OO##
####
..OX
4 4
OOO.
....
....
...X
5 5
O...O
.....
..#..
.....
O...X
5 5
O...O
.....
...#.
.....
O...X
6 6
......
.O..O.
..##..
..##..
.O..X.
......
6 6
#.....
.O..O.
..##..
..##..
.O..X.
......
10 10
..........
..........
..O....O..
..........
..........
..........
..........
..O....X..
..........
..........
10 10
..........
.#.#.#.#.#
..O.....O.
.#.#.#.#.#
..........
.#.#.#.#.#
..........
.#.#.#.#.#
..O.....X.
.#.#.#.#.#
样例:in.txt
输出要求:
每组测试数据输出一行,若追捕者能够捉到逃亡者,则输出他们要经过多少轮后才能成功
。轮数的计算包括追捕者和逃亡者进行行动的两轮,逃亡者被捕获的那一轮不算,因而结
果总是一个奇数。具体输出格式请参考输出样例(请注意大小写)。
The escapee will be captured after 1 steps
The escapee will be captured after 7 steps
The escapee will be captured after 5 steps
The escapee will never be captured
The escapee will be captured after 21 steps
The escapee will never be captured
The escapee will be captured after 41 steps
The escapee will never be captured
The escapee will be captured after 39 steps
The escapee will never be captured
The escapee will be captured after 51 steps
样例:out.txt
评分规则:
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超
过60秒,否则该用例不得分;
要求程序能按照输入样例的格式读取数据文件,按照输出样例的格式将运行结果输出到标
准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有5个测试数据集,每个测试数据集为一个输入文件,包含多组测试数据。每个测试
数据集从易到难分别为5、10、15、30和40分,对每个测试数据集分别执行一次程序,每次
必须在运行时限60秒内结束程序并输出正确的答案才能得分。
五个测试数据集中输入N、M分别不大于6、7、8、9和10。
该题目100分。
--
_ ____ __ __ __ ___ ____ ____ ____
/ / / ___|| // | / /|_ _| / ___|| _ / / ___|
/ _ / | | | |//| | / / | | | | | |_) || |
/ ___ / | |___ | | | | / / | | | |___ | __/ | |___
/_/ /_/ /____||_| |_|/_/ |___| /____||_| /____|
※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·
华中地区网络中心