#include<stdio.h>
#include<iostream>
#include<math.h>
#include<algorithm>
using namespace std;
#define Manx 1001
int R;
int trile[Manx][Manx];
int dp[Manx][Manx];
int main()
{
cin >> R;
for (int i = 1; i <= R;i++)
for (int j = 1; j <= i; j++)
cin >> trile[i][j];
dp[1][1] = trile[1][1];
for (int i = 2; i <= R;i++)
for (int j = 1; j <= i; j++)
{
if (j == 1)
dp[i][j] = trile[i][j] + dp[i - 1][j];
else if (j == i)
dp[i][j] = trile[i][j] + dp[i - 1][j - 1];
else
dp[i][j] = trile[i][j] + max(dp[i - 1][j], dp[i - 1][j - 1]);
}
int ans = 0;
for (int j = 1; j <= R; j++)
ans = max(ans, dp[R][j]);
cout << ans;
return 0;
}
题目 A: Number Triangles佐助题库http://12345code.com/problem.php?cid=1060&pid=0
于 2022-01-20 19:15:42 首次发布
该博客介绍了一道名为Number Triangles的题目,要求编写程序找出数字金字塔中从顶部到底部的路径,使得路径经过的数字之和最大。题目描述详细,包括输入输出格式和样例,适用于蓝桥杯竞赛,编程语言推荐使用C++。
摘要由CSDN通过智能技术生成