洛谷 python答题 re和ac 同时出现如何解决
n,m,x1,y1=map(int,input().split())
st=[[0]*n for i in range(m)]
for i in range(n):
for j in range(m):
st[i][j]=[i,j,-1]
st[x1-1][y1-1][2]=0
xx=[-2,-2,2,2,-1,-1,1,1]
yy=[-1,1,-1,1,2,-2,2,-2]
q=[st[x1-1][y1-1]]
while q:
ji=q.pop(0)
for i in range(8):
a=ji[0]+xx[i]
b=ji[1]+yy[i]
if a<0 or a>n-1 or b<0 or b>m-1:
continue
if st[a][b][2]!=-1:
continue
st[a][b][2]=st[ji[0]][ji[1]][2]+1
q.append(st[a][b])
for i in range(n):
for j in range(m):
print(st[i][j][2],end='\t')
print('')
RE是Runtime Error,一般是指代码报错了
分享一下我的AC代码
n, m, x, y = map(int, input().split())
ans = [[-1]*m for _ in range(n)]
ans[x-1][y-1] = 0
from collections import deque
q = deque()
q.append((x-1, y-1))
d = ((-2, 1), (-1, 2), (1, 2), (2, 1), (2, -1), (1, -2), (-1, -2), (-2, -1))
while q:
r, c = q.popleft()
for x, y in d:
xx = r + x
yy = c + y
if 0 <= xx < n and 0 <= yy < m and ans[xx][yy] < 0:
ans[xx][yy] = ans[r][c] + 1
q.append((xx, yy))
for i in ans:
print(*i)
while True:
try:
n,k = map(int,input().split())
s = list(input()) #此时的列表数据都是str类型
dp = [[0 for i in range(k+1)]for j in range(n+1)] #动规的数组
dp[1][0] = int(s[0])
for i in range(2, n+1):
dp[i][0] = int(s[i-1])+int(dp[i-1][0])*10 #往动规数组放的时候要转化成int类型,输入数组的第一列
for y in range(1,k+1): #y个乘号
for x in range(1,n+1): #x位数
if x>y:
for z in range(1,x): #乘号,动态地在数字之间跑
dp[x][y] = max(dp[x][y], dp[z][y-1]*(dp[x][0]-dp[z][0]*10**(x-z)))
print(dp[n][k])
except:
break
编程小白记录成长