思路:网格图bfs板子题。没太多好说的,纯板子
代码:
import sys
from collections import deque
input = lambda: sys.stdin.readline().strip()
import math
inf = 10 ** 18
def I():
return input()
def II():
return int(input())
def MII():
return map(int, input().split())
def LI():
return input().split()
def LII():
return list(map(int, input().split()))
def LFI():
return list(map(float, input().split()))
fmax = lambda x, y: x if x > y else y
fmin = lambda x, y: x if x < y else y
isqrt = lambda x: int(math.sqrt(x))
'''
'''
def solve():
n, m = MII()
xs, ys, xt, yt = LII()
xs -= 1; ys -= 1; xt -= 1; yt -= 1
g = [list(I()) for _ in range(n)]
q = deque([(xs, ys)])
dis = -1
while q:
dis += 1
for _ in range(len(q)):
i, j = q.popleft()
if i == xt and j == yt:
print(dis)
return
for x, y in (i + 1, j), (i - 1, j), (i, j + 1), (i, j - 1):
if 0 <= x < n and 0 <= y < m and g[x][y] == '.':
g[x][y] = '*'
q.append((x, y))
print(-1)
t = 1
# t = II()
for _ in range(t):
solve()

京公网安备 11010502036488号