数塔问题
给定一个具有 N 层的数字三角形,从顶至底有多条路径,每一步可沿左斜线向下或沿右斜线向下,路径所经过的数字之和为路径得分,请求出最大路径得分。
这里写图片描述
输入
1
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出
30
代码
#include <iostream>
using namespace std;
const int LN=101;
int a[LN][LN];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
for(int i=n-1;i>=1;i-- )
for(int j=1;j<=i;j++)
a[i][j]+=max(a[i+1][j],a[i+1][j+1]);
cout<<a[1][1];
return 0;
}
解决数塔问题:寻找最大路径得分
数塔问题是一个寻找从顶部到底部路径中数字之和最大值的挑战。给定一个N层的数字三角形,每一步可以向左斜下或右斜下移动。文章介绍了如何求解这一问题,并提供了相关代码实现。
1226

被折叠的 条评论
为什么被折叠?



