Python 如何提高T.C,我正在接受T.L.E
给你一个N x N的正方形网格。除左上角外,每个正方形都用正整数填充。从左上角开始,分数为0,然后向右移动一个正方形或向下移动一个正方形,移动到右下角的正方形。当你移动到新的方格时,你的分数变成[S/2]+k,其中S是你上一个方格的分数,k是写在当前方格中的数字。在上面的例子中,[x]是不大于x的最大整数。因此,[5]是5,[5.5]也是5 编写一个程序,找出可以退出网格的最小分数 我的代码: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
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.”没有意义。我添加了一个测试用例。