这个问题的本质是带状态的最短路/BFS:
在一个 R 行 C 列的迷阵中,探险者需要从起点出发,抵达终点。迷阵的每个格子要么是可通行的空地(用 . 表示),要么是不可穿越的石墙(用 # 表示)。探险者每一步可以向上、下、左、右四个方向之一移动一格,必须始终停留在空地格子上,且不能走出迷阵边界。
然而,迷阵中暗藏着一道古老禁制:探险者不能连续两次沿同一类方向移动。具体来说,若上一步是向上或向下移动(纵向移动),则下一步只能选择向左或向右(横向移动);若上一步是横向移动,则下一步只能选择纵向移动。出发时的第一步没有限制,可以任意选择方向。
请你计算探险者从起点到达终点所需的最少步数。若起点和终点相同,所需步数为 0。如果无法到达,请输出 -1。
数据范围与约定:
1,至多不超过 2000。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册