zoukankan      html  css  js  c++  java
  • HDOJ_ACM_数塔

    Problem Description
    在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:

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

    已经告诉你了,这是个DP的题目,你能AC吗?
     
    Input
    输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。
     
    Output

                对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。
     
    Sample Input
    1
    5
    7
    3 8
    8 1 0 
    2 7 4 4
    4 5 2 6 5
     
    Sample Output
    30
     
     
    Code
    View Code
     1 //build frame, input, handle, output
     2 #include <stdio.h>
     3 int f[105][105];
     4 int main()
     5 {
     6     int T, N, i, j, max;
     7     scanf("%d", &T);
     8     while (T--)
     9     {
    10         //input
    11         scanf("%d", &N);
    12         for (i = 1; i <= N; i++)
    13             for (j = 1; j <= i; j++)
    14                 scanf("%d", &f[i][j]);
    15         //handle
    16         for (i = 2; i <= N; i++)
    17             for (j = 1; j <= i; j++)
    18                 f[i][j] += f[i - 1][j - 1] > f[i - 1][j] ?
    19                         f[i - 1][j - 1] : f[i - 1][j];
    20         //get the biggest number and print
    21         max = -1;
    22         for (j = 1; j <= N; j++)
    23             max = max > f[N][j] ? max : f[N][j];
    24         printf("%d\n", max);
    25     }
    26     return 0;
    27 }
    View Code
    Key Points
    The first one is top-down.
    The seconde one is buttom-up.

     

  • 相关阅读:
    Hbuilder实用快捷键
    ECMAScript中的箭头函数 (=>) 使用注意事项
    DreamWeaver CC 中的回车
    Django——正则表达式的举例与基本语法
    Django——如何处理请求(URL配置和视图)
    excel之导出
    eclipse几种常见问题的解决
    XML与JavaScript知识
    XML入门知识
    数据库实验7(pl/sql)
  • 原文地址:https://www.cnblogs.com/chuanlong/p/2767400.html
Copyright © 2011-2022 走看看