2S/512M
apiadu 走进了一个 行 列的森林。起初 apiadu 位于第 行第 列,他的目标是走到第 行第 列。
森林的地图由字符矩阵表示,包含以下几种符号:
. :表示空地,可以通过。# :表示大树,视为障碍物,无法直接通过。F :表示青蛙,该位置视为可以通行的空地,且带有一只青蛙。apiadu 可以进行以下几种动作:
apiadu 当前所在的位置有青蛙,且他手中没有青蛙,则可以花费 秒将这只青蛙捡起。捡起后,该位置的青蛙消失。apiadu 手中有青蛙,且向上下左右某个方向紧邻的格子是大树(#),他可以花费 秒将青蛙向该方向投掷(投掷后 apiadu 的手里没有青蛙)。投掷后,该位置的大树被摧毁,变成空地 .。投掷青蛙后,apiadu 必须 紧接着花费 秒移动到这个新产生的空地上。当 apiadu 离开这个新产生的空地后,该位置会立即重新长出大树(变回 #)。请计算 apiadu 到达终点需要多少秒。题目保证 apiadu 一定能到达终点。
第一行包含两个整数 ,表示森林的大小。
接下来 行,每行包含一个长度为 的字符串,表示森林的地图。
输出一行一个整数,表示到达终点的最小秒数。
3 4
.F#.
.###
.#..
9
apiadu 可以按照以下顺序行动:
apiadu 离开 ,该位置立即变回大树。总计 秒。
注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。
| 子任务编号 | 分数 | 特殊限制 |
|---|---|---|
地图中不包含 F |
||
| 无 |
对于 的数据,满足 。保证地图第 行第 列和第 行第 列是 .。