#P1071. half past four

half past four

2024.8.172024.8.17:数据出锅,已修正并全部重测。

题目描述

小 X 与他的同学约好下午 4:30 在红梅公园见面,现在已经是 4:27 ,他必须以最快的速度到达红梅公园。

所幸,小 X 离红梅公园不远。但是他必须走最短路线,所以他得到了一份 nnmm 列的地图。地图的左上角是小 X 所在的位置,右下角是红梅公园,地图中的“.”代表可通行区块,“#”代表草坪。

小 X 是一个调皮的人,他速度极快,可以踩过一块草坪,但只能踩一块,并且踩上后必须立即离开,因为他一旦踩草坪太多次或逗留在草坪上的时间太久就会被环卫工人发现并被痛骂一顿。

小 X 想要你帮他算一算,他最少要经过多少个区块才能到达红梅公园?

输入格式

n+1n+1 行。

第一行,两个整数 n,mn,m

接下来 nn 行,每行 mm 个字符。“.”代表该区块可通行,“#”代表该区块是草坪。数据保证起点是“.”,但不保证终点是“.”。数据保证小 X 一定能到达终点。

输出格式

一行一个整数代表小 X 最少需要经过多少个区块才能到达终点。

5 5
...#.
##.#.
...#.
.##..
.....
8
5 5
...#.
##.#.
...#.
.##..
....#
12

样例解释

对于样例 11,小 X 可以踩过位于 (1,4)(1,4) 的一块草坪,然后沿着第 55 列走到终点,一共需要 88 步。

对于样例 22,终点是“#”,这意味着小 X 在到达终点之前不能踩过任意一块草坪,即只能沿着“.”走,至少需要 1212 步。

数据范围

本题共 1010 个测试点,每个测试点 1010 分。

对于测试点 131-3n,m5n,m \le 5

对于测试点 464-6n,m8n,m \le 8

对于测试点 7107-10n,m12n,m \le 12

至少有 33 个测试点的终点为“#”。