D. 走走跳跳

    Type: Default 1000ms 256MiB

走走跳跳

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

一天 Csvoner 在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由 n×mn\times m 的格点组成,每个格点只有2种状态,.#,前者表示道路,后者表示围墙。

Csvoner 现在在左上角,他希望走到右下角的位置,他有两种移动方式:

  • 如果当前位置是道路,那么可以到上下左右相邻的道路中。
  • 不管当前位置是什么,都可以跳跃到上下左右四个方向间隔一个格点的位置(不管那个位置是道路还是围墙)。
    • 即可以从 (x,y)(x,y) 跳跃到 (x+2,y),(x2,y),(x,y+2),(x,y2)(x+2,y),(x-2,y),(x,y+2),(x,y-2) 四个位置之一(当然前提条件是这四个位置都在地图内)。

请问 Csvoner 最少使用几次跳跃可以从左上角走到右下角。如果无论如何都无法到达,输出 -1

输入格式

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

接下来 nn 行,每行由 mm 个字符构成。即 n×mn\times m 的格点。

输出格式

一个数,即最少跳跃次数。

4 7
.######
.#.....
##.####
...#...
2
1 9
#########
4
1 10
##########
-1

数据规模与约定

对于 100%100\% 的数据,1n,m10001 \le n,m \le 1000

  • 子任务 1(30 分):保证所有位置都是围墙。
  • 子任务 2(30 分):保证 n=1n = 1
  • 子任务 3(40 分):没有特殊限制。

2026 庆元旦积分赛

Not Attended
Status
Done
Rule
Ledo
Problem
4
Start at
2025-12-31 12:00
End at
2026-1-3 12:00
Duration
72 hour(s)
Host
Partic.
8