zoukankan      html  css  js  c++  java
  • HDU 2084 数塔 (dp)

    HDU 2084 数塔 (dp)

    题目描述:

    有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?

    题目限制:数塔高度<=100

    分析 :典型dp,N<=100,直接开二维数组储存每个节点的数据即可。因为最后一层每个节点的值确定,从倒数第二层开始遍历,求经过倒数第二层每个节点的最大值,并依次向上遍历,最终遍历根节点,并输出根节点的值即为经过的结点的数字之和最大值。

    #include <iostream>
    
    #define N 110
    
    using namespace std;
    
    int main()
    {
        int c;
    
        cin>>c;
        while(c--)
        {
            int n;
            cin>>n;
            int a[N][N];
            for(int i=0 ; i<n ; i++)
            {
                for(int j=0 ; j<=i ; j++)
                {
                    cin>>a[i][j];
                }
            }
            for(int i= n-2 ; i>=0 ; i--)
            {
               for(int j=0; j<=i ; j++)
               {
                    if(a[i+1][j]>a[i+1][j+1])
                        a[i][j]+=a[i+1][j];
                    else
                        a[i][j]+=a[i+1][j+1];
               }
            }
            cout<<a[0][0]<<endl;
        }
        return 0;
    }
    透过泪水看到希望
  • 相关阅读:
    Qt 解析EXcel文件
    Qt PC 安卓 tcp传输文件
    Qt listwigwt item 加入自定义元素
    Qt 独立运行时伴随CMD命令窗口
    xml模块
    shelve模块
    json模块 pickle模块
    sys 模块
    os模块
    添加变量
  • 原文地址:https://www.cnblogs.com/ronnielee/p/9495147.html
Copyright © 2011-2022 走看看