其实可以有一个 n^4 的dp(真的能说是dp嘛,虽然确实是转移),但是怀疑python过不去,还是老老实实dfs[doge]
h, w = list(map(int,input().split())) mp = [list(map(int,input().split())) for i in range(h)] mp[0][0] = 114514 dp = [[(-1,-1) for j in range(w)] for i in range(h)] def dfs(x,y): for a,b in [(1,0),(0,1),(-1,0),(0,-1)]: nx = x + a ny = y + b if(0 <= nx < h and 0 <= ny < w) and not mp[nx][ny] and dp[nx][ny] == (-1,-1): dp[nx][ny] = (x,y) dfs(nx,ny) dp[0][0] = (114514,114514) dfs(0,0) ans = [] pos = (h - 1,w - 1) while pos != (0,0): ans.append(pos) pos = dp[pos[0]][pos[1]] ans.append(pos) ans.reverse() for i in ans: print(f"({i[0]},{i[1]})")
#牛客春招刷题训练营# + 链接