zoukankan      html  css  js  c++  java
  • HDU2084-数塔

    描述:

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

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

    代码:

      简单的动态规划。

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<stdlib.h>
    #include <math.h>
    #define N 105
    using namespace std;
    int height,tree[N][N],dp[N][N];
    
    int main(){
        int testcase;
        scanf("%d",&testcase);
        while ( testcase-- ){
            scanf("%d",&height);
            memset(dp,0,sizeof(dp));
            for( int i=0;i<height;i++ ){
                for( int j=0;j<i+1;j++ ){
                    scanf("%d",&tree[i][j]);
                }
            }
            for( int i=height-1;i>=0;i-- ){
                for( int j=0;j<i+1;j++ ){
                    dp[i][j]=tree[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
                }
            }
            printf("%d
    ",dp[0][0]);
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    List集合
    ArrayList_toArray
    Collection集合基础知识
    Array类的使用
    16.10
    16.9
    16.8
    16.7
    16.6
    16.5
  • 原文地址:https://www.cnblogs.com/lucio_yz/p/4716740.html
Copyright © 2011-2022 走看看