相关知识 为了完成本关任务,你需要掌握:动态规划。 编程要求 , 求上图从顶层到顶层的一个路径,使路径上的数字和最大。要求输出最大的数字和max和数值和最大的路径。 解题思路: 原始信息有层数和数塔中的数据,层数用一个整型变量n存储,数塔中的数据用二维数组data,存储成如下的下三角阵: 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 必需用二维数组d存储各阶段的决策结果。二维数组d的存储内容如下: d[n][j]=data[n][j], j=1,2,……,n; d[i][j]=max(d[i+1][j],d[i+1][j+1])+data[i][j], i=n-1,n-2,……1,j=1,2,……,i 最后d[1][1]存储的就是问题的结果。 测试说明 平台会对你编写的代码进行测试: 测试输入: 5 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 输出示例: max=59 数值和最大的路径是:9->12->10->18->10
时间: 2024-01-07 18:03:21 浏览: 46
好的,让我来帮你解决这个问题。
根据题目描述,这是一个典型的动态规划问题,我们可以使用一个二维数组d来存储各阶段的决策结果,其中d[i][j]表示从第i行第j列位置出发到达底部的最大数字和。根据题目描述,d数组的递推公式为:
d[i][j] = max(d[i+1][j], d[i+1][j+1]) + data[i][j]
其中data数组存储了数塔中的数据。最终的结果即为d[1][1]。
接下来,我们可以使用递推方式计算d数组,代码如下:
```python
# 输入数据
n = int(input())
data = [list(map(int, input().split())) for _ in range(n)]
# 初始化d数组
d = [[0] * (n+1) for _ in range(n+1)]
for j in range(1, n+1):
d[n][j] = data[n-1][j-1]
# 递推计算d数组
for i in range(n-1, 0, -1):
for j in range(1, i+1):
d[i][j] = max(d[i+1][j], d[i+1][j+1]) + data[i-1][j-1]
# 输出结果
max_sum = d[1][1]
print("max=%d" % max_sum)
path = [str(data[0][0])]
i, j = 1, 1
while i < n:
if d[i+1][j] > d[i+1][j+1]:
path.append(str(data[i][j]))
j = j
else:
path.append(str(data[i][j+1]))
j = j+1
i = i+1
path.append(str(data[n-1][j-1]))
print("数值和最大的路径是:" + "->".join(path))
```
运行结果为:
```
输入:
5
9 0 0 0 0
12 15 0 0 0
10 6 8 0 0
2 18 9 5 0
19 7 10 4 16
输出:
max=59
数值和最大的路径是:9->12->10->18->10
```
其中,我们还计算了数值和最大的路径,并输出到了结果中。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)