• [USACO1.5]数字三角形 Number Triangles


    题目描述

    观察下面的数字金字塔。

    写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。

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

    在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大

    输入输出格式

    输入格式:

    第一个行包含 R(1<= R<=1000) ,表示行的数目。

    后面每行为这个数字金字塔特定行包含的整数。

    所有的被供应的整数是非负的且不大于100。

    输出格式:

    单独的一行,包含那个可能得到的最大的和。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int x[1005][1005],m,a,b,c,d,e,f[1005][1005],k;
    int main()
    {
        cin>>m;
        for(a=1;a<=m;a++)
        {
            for(b=1;b<=a;b++)
            {
                cin>>x[a][b];
            }
        }
        for(a=1;a<=m;a++)
        {
            for(b=1;b<=a;b++)
            {
                if(a==1)
                {
                    f[a][1]=x[1][1];
                }
                if(b-1>0&&b+1<=a)
                {
                    f[a][b]=max(x[a][b]+f[a-1][b-1],x[a][b]+f[a-1][b]);
                }
                else
                {
                    if(b-1<=0)
                    {
                        f[a][b]=x[a][b]+f[a-1][b];
                    }
                    else
                    {
                        f[a][b]=x[a][b]+f[a-1][b-1];
                    }
                }
            }
        }
        for(a=1;a<=m;a++)
        {
            if(f[m][a]>k)
            {
                k=f[m][a];
            }
        }
        cout<<k;
    }


  • 相关阅读:
    500 多个 Linux 命令文档搜索
    C++ 字符串基本操作
    串的模式匹配算法
    查看、启动、关闭防火墙
    天润融通面试
    LeetCode 169. 求众数
    【面试题】人人车一次面试总结
    一个完整的 JS 身份证校验代码
    oracle多表查询
    百度地图的Icon
  • 原文地址:https://www.cnblogs.com/ztz11/p/9189981.html
Copyright © 2020-2023  润新知