徐州做网站费用,只做PC版网站,单位网站制作,wordpress 做的人多吗给定一个如下图所示的数字三角形#xff0c;从顶部出发#xff0c;在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点#xff0c;一直走到底层#xff0c;要求找出一条路径#xff0c;使路径上的数字的和最大。 73 88 1 02 7 4 4
4 5 2 6 …给定一个如下图所示的数字三角形从顶部出发在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点一直走到底层要求找出一条路径使路径上的数字的和最大。 73 88 1 02 7 4 4
4 5 2 6 5输入格式
第一行包含整数 nn表示数字三角形的层数。
接下来 nn 行每行包含若干整数其中第 ii 行表示数字三角形第 ii 层包含的整数。
输出格式
输出一个整数表示最大的路径数字和。
数据范围
1≤n≤5001≤n≤500, −10000≤三角形中的整数≤10000−10000≤三角形中的整数≤10000
输入样例
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5输出样例
30
完整代码如下
#includebits/stdc.h
using namespace std;
const int N505;
const int INF1e9;
int f[N][N]; //表示最大路径之和
int a[N][N];
int main(){int n;scanf(%d,n);for(int i1;in;i){for(int j1;ji;j){scanf(%d,a[i][j]);}}for(int i1;in;i){for(int j0;ji1;j){f[i][j]-INF;}}f[1][1]a[1][1];for(int i2;in;i){for(int j1;ji;j){f[i][j]a[i][j]max(f[i-1][j-1],f[i-1][j]);}}int res-INF;for(int i1;in;i){resmax(res,f[n][i]);}printf(%d\n,res);return 0;
}