百练OJ:2760:数字三角形
生活随笔
收集整理的這篇文章主要介紹了
百练OJ:2760:数字三角形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:2760
描述
圖1給出了一個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對于每條路徑,把路徑上面的數加起來可以得到一個和,你的任務就是找到最大的和。
注意:路徑上的每一步只能從一個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。
解題代碼:
n = int(input()) D = [[0 for i in range(n)] for i in range(n)] aMaxSum = [[0 for i in range(n)] for i in range(n)] for i in range(n):str = input()for j in range(i+1):D[i][j] = int(str.split()[j]) for i in range(n):aMaxSum[n-1][i]=D[n-1][i] i = n-1 while i > 0:for j in range(i):if aMaxSum[i][j] > aMaxSum[i][j+1]:aMaxSum[i-1][j] = aMaxSum[i][j] + D[i-1][j]else:aMaxSum[i-1][j] = aMaxSum[i][j+1] + D[i-1][j]i -= 1print(aMaxSum[0][0])
總結
以上是生活随笔為你收集整理的百练OJ:2760:数字三角形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百练OJ:1007:DNA排序
- 下一篇: 百练OJ:2810:完美立方