• 4979 数塔


    4979 数塔

     

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 黄金 Gold
     
     
     
    题目描述 Description

    有如图数塔,从顶部出发,在每一节点选择向左走或向右走,一直走到底。要求找到一个路径,使路径总和最大。

                                   13

                              11       8

                         12       7      26

                      6      14      15      8

                12      7      13      24     11

    输入描述 Input Description

    第一行输入一正整数n

    接下来从第2行到第n+1行每行输入行数减1个正整数m。

    输出描述 Output Description

    共两行

    第一行输出最大总和;

    第二行输出最大路径,用‘-’隔开;

    样例输入 Sample Input

    5

    13

    11   8

    12   7  26

     6  14  15   8

    12   7  13  24  11

    样例输出 Sample Output

    86

    13-8-26-15-24

    数据范围及提示 Data Size & Hint

    40%数据:n<=20 , m<=1000

    60%数据:n<=60 , m<=1050

    分类标签 Tags 点此展开 

     
    暂无标签
     
    题解:
    数字三角形+输出路径
    AC代码:
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    bool d;
    int b[101][101],c[101][101],n,tot;
    int main(){
        int i,j;
        scanf("%d",&n);
        for(i=1;i<=n;i++){
            for(j=1;j<=i;j++){
                scanf("%d",&b[i][j]);
                c[i][j]=b[i][j];
            }
        }
        for(i=n-1;i>=1;i--)
            for(j=1;j<=i;j++)
                b[i][j]+=max(b[i+1][j],b[i+1][j+1]);
        printf("%d
    %d-",b[1][1],c[1][1]);
        j=1;
        for(int i=2;i<=n;i++){
            if(b[i][j]>=b[i][j+1])
                printf("%d",c[i][j]);
            else{
                printf("%d",c[i][j+1]);
                j++;
            }
            if(i!=n)
                printf("-");
        }
        return 0;
    }
  • 相关阅读:
    Mysql表连接查询
    mysql查询语句 和 多表关联查询 以及 子查询
    MySql 模糊查询、范围查询
    Mysql外键约束设置使用方法
    python基础:re模块匹配时贪婪和非贪婪模式
    解决Ubuntu 16.04下提示boot分区空间不足的办法
    String,StringBuffer,StringBuilder的区别
    多线程模拟生产者和消费者模型
    线程同步处理
    多线程的三种实现
  • 原文地址:https://www.cnblogs.com/shenben/p/5758896.html
Copyright © 2020-2023  润新知