python小白求助。。。明明样题结果和答案一样却全部爆零
查看原帖
python小白求助。。。明明样题结果和答案一样却全部爆零
490940
Mrs_Panoan楼主2021/6/18 22:35
import sys
sys.setrecursionlimit(100000)
n,m,x,y=map(int,input().split())
graph=[[-1]*m for _ in range(m)]
vis=[[False]*m for _ in range(m)]
graph[x-1][y-1]=0
vis[x-1][y-1]=True
delta=[(-1,-2),(-1,2),(1,-2),(1,2),(-2,-1),(-2,1),(2,1),(2,-1)]

def isok(x,y):
    return 0<=x<n and 0<=y<m and not vis[x][y]

def bfs(x,y):
    from collections import deque
    qu=deque()
    qu.append((x,y))
    while qu:
        x,y=qu.popleft()
        for i in range(8):
            nx,ny=x+delta[i][0],y+delta[i][1]
            if isok(nx,ny):
                qu.append((nx,ny))
                vis[nx][ny]=True
                graph[nx][ny]=graph[x][y]+1

for i in range(n):
    for j in range(m):
        bfs(i,j)

for i in range(n):
    print("{:<5}{:<5}{:<5}".format(graph[i][0],graph[i][1],graph[i][2]))
2021/6/18 22:35
加载中...