若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1725: 数字三角形问题

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,075

题目描述

给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。

对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。

输入

输入数据的第1行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形各行中的数字。所有数字在0..99之间。

输出

输出数据只有一个整数,表示计算出的最大值。

样例输入

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

样例输出

30

参考代码

#include <stdio.h>   
 #include <memory.h>   
 #define MAX_NUM 100   
 int D[MAX_NUM + 10][MAX_NUM + 10];
int N;
int aMaxSum[MAX_NUM + 10][MAX_NUM + 10];
main() 
{
    int i, j;
    scanf("%d", & N);
    for ( i = 1; i <= N; i ++ )   
     for ( j = 1; j <= i; j ++ )   
     scanf("%d", &D[i][j]);
    for ( j = 1; j<= N; j ++ )   
     aMaxSum[N][j] = D[N][j];
    for ( i = N ; i > 1 ; i -- )   
     for ( j = 1; j < i ; j ++ ) 
    {
        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];
    }
    printf("%d", aMaxSum[1][1]);
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

原站点 Dreams孤独患者 Skip
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist