zoukankan      html  css  js  c++  java
  • 杭电2084 数塔

    /***** HDOJ_2084_数塔问题 ********/


    /******** written by C_Shit_Hu ************/


    ////////////////动态规划DP问题///////////////


    /****************************************************************************/
    /*
    在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:
    有如数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
    已经告诉你了,这是个DP的题目,你能AC吗?


    Input
    输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。

    Output
    对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。
    */
    /****************************************************************************/


    // 经典DP问题,阶段分析。


    #include <stdio.h>


    int max(int a, int b)
    {
    return a>b?a:b;
    }


    int main()
    {
    int n,i,j;
    int dp[101][101];
    int T;
    scanf("%d",&T);
    while(T--)
    {
    scanf("%d",&n);
    for(i=0;i<n;i++)
    for(j=0;j<=i;j++)
    scanf("%d",&dp[i][j]); // 输入数塔

    for(i=n-2;i>=0;i--)
    for(j=0;j<=i;j++)
    dp[i][j]=dp[i][j]+max(dp[i+1][j],dp[i+1][j+1]); // 状态转移方程,自下而上的移动

    printf("%d ",dp[0][0]);

    }
    return 0;
    }


    /******************************************************/
    /******************** 心得体会 **********************/
    /*

  • 相关阅读:
    Tarjan算法
    10JS数组
    9JS循环
    8.JS流程控制
    7.JS运算符
    6.JS方法
    5.JS变量的各种问题
    java封装遇到的问题
    js报Uncaught SyntaxError: Unexpected token <错误 解决方法:
    使用layui出现Uncaught ReferenceError: layui is not defined问题解决:
  • 原文地址:https://www.cnblogs.com/ghostTao/p/3858735.html
Copyright © 2011-2022 走看看