两个测试点中起始点为障碍物,不符合常规迷宫逻辑
20查看
哈哈哈哈哈哈哈哈
2025-03-12 22:21
来自: 走迷宫

不是哥们,你起始点是障碍物你怎么走

有两个测试点是障碍物,起始点是障碍物还走什么。详细内容看代码中的注释

import os
import sys
from collections import deque
n,m=map(int,input().split())
s=[list(map(int,input().split())) for _ in range(n)]
x1,y1,x2,y2=map(int,input().split())

x1-=1
y1-=1
x2-=1
y2-=1

xl=[1,-1,0,0]
yl=[0,0,1,-1]

l=[[-1]*m for _ in range(n)]

if s[x2][y2]==0:    #这里改成if s[x1][y1]==0 and s[x2][y2]==0: 会有两个测试点不通过
    print('-1')
    sys.exit(0)

q=deque([(x1,y1)])
l[x1][y1]=0
while q:
    x,y=q.popleft()
    for i in range(4):
        xx,yy=x+xl[i],y+yl[i]
        if 0<=xx<n and 0<=yy<m and s[xx][yy]==1 and l[xx][yy]==-1:
            l[xx][yy]=l[x][y]+1
            q.append((xx,yy))
print(l[x2][y2])
copy
你的回复