zoukankan      html  css  js  c++  java
  • C

    Description

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

    Input

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

    Output

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

    Sample

    Input 

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

    Output 

    30
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <string.h>
     4 #define inf 0x3f3f3f3f
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n, i, j;
    10     int a[105][105], dp[105][105];
    11     cin >> n;
    12     for(i=0;i<n;i++)
    13     {
    14         for(j=0;j<=i;j++)
    15         {
    16             cin >> a[i][j];
    17         }
    18     }
    19     for(i=0;i<n;i++)
    20     {
    21         dp[n-1][i] = a[n-1][i];
    22     }
    23     for(i=n-2;i>=0;i--)
    24     {
    25         for(j=0;j<=i;j++)
    26         {
    27             dp[i][j] = max(dp[i+1][j], dp[i+1][j+1])+a[i][j];
    28         }
    29     }
    30     cout << dp[0][0] << endl;
    31     return 0;
    32 }
  • 相关阅读:
    16 js动态添加样式
    15 document对象
    89 多线程(十...)——线程池
    14 window对象
    13 js事件2——选择合适的事件
    12 js事件
    11 js的常用类和方法
    10 js自定义对象
    09 js自定义类与prototype关键字
    88 maven配置库,dom4j
  • 原文地址:https://www.cnblogs.com/0xiaoyu/p/13765335.html
Copyright © 2011-2022 走看看