关于洛谷python答题出现re

洛谷 python答题 re和ac 同时出现如何解决

img

img

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)
  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:人工智能-模拟退火算法解决八数码问题-python源码
  • 除此之外, 这篇博客: 蓝桥杯 算法训练 乘积最大Python实现(动态规划)详细中的 AC代码: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 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
    

    编程小白记录成长