Python 如何提高T.C,我正在接受T.L.E

Python 如何提高T.C,我正在接受T.L.E,python,dynamic-programming,Python,Dynamic Programming,给你一个N x N的正方形网格。除左上角外,每个正方形都用正整数填充。从左上角开始,分数为0,然后向右移动一个正方形或向下移动一个正方形,移动到右下角的正方形。当你移动到新的方格时,你的分数变成[S/2]+k,其中S是你上一个方格的分数,k是写在当前方格中的数字。在上面的例子中,[x]是不大于x的最大整数。因此,[5]是5,[5.5]也是5 编写一个程序,找出可以退出网格的最小分数 我的代码: def go(d,r,ans): if r==n and d==n: ans

给你一个N x N的正方形网格。除左上角外,每个正方形都用正整数填充。从左上角开始,分数为0,然后向右移动一个正方形或向下移动一个正方形,移动到右下角的正方形。当你移动到新的方格时,你的分数变成[S/2]+k,其中S是你上一个方格的分数,k是写在当前方格中的数字。在上面的例子中,[x]是不大于x的最大整数。因此,[5]是5,[5.5]也是5

编写一个程序,找出可以退出网格的最小分数

我的代码:

def go(d,r,ans):
    if r==n and d==n:
        ans = ans//2 + arr[d][r]
        return ans
    elif r==n:
        ans = ans//2 + arr[d][r]
        return go(d+1,r,ans)
    elif d==n:
        ans = ans//2 + arr[d][r]
        return go(d,r+1,ans)
    else:
        ans = ans//2 + arr[d][r]
        return min(go(d+1,r,ans),go(d,r+1,ans))

n = int(input())
arr = []
for i in range(n):
    arr.append(list(map(int,input().split())))
ans = 0
n-=1
score = go(0,0,ans)
print(score)
eg测试用例:

2
0 4
9 6
输出

8

提供一个用于输入
n
input().split()
的示例。你有什么问题?“T.C.”和“T.L.E.”没有意义。我添加了一个测试用例。请提供一个用于输入
n
input().split()
的示例。你有什么问题?“T.C.”和“T.L.E.”没有意义。我添加了一个测试用例。