zoukankan      html  css  js  c++  java
  • 4979 数塔 (动规)

    4979 数塔

     时间限制: 1 s
     空间限制: 1000 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

     1 #include<iostream>
     2 using namespace std;
     3 #include<cstdio>
     4 int n;
     5 int num[66][66];
     6 int f[66][66];
     7 int pre[66][66];
     8 int main()
     9 {
    10     cin>>n;
    11     for(int i=1;i<=n;++i)
    12     {
    13         for(int j=1;j<=i;++j)
    14         {
    15             scanf("%d",&num[i][j]);
    16             if(i==n)f[i][j]=num[i][j];
    17         }
    18     }
    19     for(int i=(n-1);i>=1;--i)
    20     {
    21         for(int j=1;j<=(i+1);++j)
    22         {
    23             if(f[i+1][j]>f[i+1][j+1])
    24             {
    25                 pre[i][j]=j;
    26                 f[i][j]=f[i+1][j]+num[i][j]; 
    27             }
    28             else 
    29             {
    30                 pre[i][j]=j+1;
    31                 f[i][j]=f[i+1][j+1]+num[i][j]; 
    32             }    
    33         }
    34     }
    35     cout<<f[1][1]<<endl<<num[1][1];
    36     int k=1,h=1;
    37     while(pre[k][h])
    38     {
    39         h=pre[k][h];
    40         ++k;
    41         cout<<"-"<<num[k][h];
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    crontab与系统时间不一致
    MySQL构造测试数据
    【SQL优化】SQL优化工具
    mysql case when then 使用
    update没带where,寻找问题的思路
    线程池
    线程理论
    数据共享
    进程池
    管道
  • 原文地址:https://www.cnblogs.com/mjtcn/p/6763470.html
Copyright © 2011-2022 走看看