#P2322. PLANKS
PLANKS
题目翻译
描述
在一片沼泽上建造一座桥,通过用木板连接树桩来穿越沼泽。
你被食人族追赶,必须想办法穿过一个满是鳄鱼的沼泽。沼泽中有一些树桩,它们按照规则的网格分布,每个网格点相距英尺。幸运的是,附近有一些木板可以铺设在树桩之间。网格左上角的树桩位于陆地,而沼泽对岸的右下角树桩也是陆地。你必须设计一个木板的铺设方案,使自己能够从起点穿越到终点。每块木板只能使用一次,且必须从一棵树桩开始并结束在另一棵树桩上。此外,木板只能沿网格水平或垂直方向铺设,不允许对角线铺设。
给定的问题可能有多个解,但你只需找到一个解即可。你的解不需要是最优的,可以使用任意组合的木板。有效的解可以包含交叉的木板。
输入
输入包含一个或多个沼泽问题。沼泽由一个的字符网格定义。每个点(“.”)表示空地,每个星号(“*”)表示一个树桩。每个木板问题定义在沼泽描述之后的一行输入中。该行的第一个数字是可用的木板数量(最多个),其余数字是可用木板的长度。每个木板根据其在列表中的顺序分配一个编号。例如,在第行中,木板长英尺,木板长英尺,木板长英尺,木板长英尺。
输出
输出的每一行包含一块木板铺设到特定树桩的信息,如下面的示例输出所示。(请使用完全相同的措辞和格式。)输出的木板顺序应使你能够从树桩到达树桩。如果无法用指定的木板找到解,则输出“no solution possible”。每个问题解之后输出一个空行。
示例输入 1
*...*....*
..........
**.*.*....
..........
..*....*..
.....*....
..........
...*......
..........
..*....*.*
4 9 9 5 8
3 9 2 3
8 2 3 4 5 6 7 8 9
示例输出 1
place plank 1 to stump (1,10)
place plank 2 to stump (10,10)
no solution possible
place plank 3 to stump (1,5)
place plank 4 to stump (1,10)
place plank 8 to stump (10,1)