zoukankan      html  css  js  c++  java
  • 数塔

    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
     
     
    经典dp模型。
    View Code
     1 #include<stdio.h> 
    2 int max(int x,int y)
    3 {
    4 return x = x > y ? x: y;
    5 }
    6 int main()
    7 {
    8 int sum,i,j,a[101][101],c,n;
    9 scanf( "%d", &c );
    10 while( c-- )
    11 {
    12 scanf("%d",&n);
    13 for( i = 0; i < n; i++ )
    14 {
    15 for( j = 0; j <= i; j++ )
    16 scanf( "%d",&a[i][j] );
    17 }
    18 for( i = n-1; i > 0; i-- )
    19 {
    20 for( j = 0; j < i; j++ )
    21 {
    22 a[i-1][j] = max( a[i][j]+a[i-1][j], a[i][j+1]+a[i-1][j] );
    23 }//从后往前,从最底层开始往上加
    24 }
    25 printf( "%d\n", a[0][0] );
    26 }
    27 return 0;
    28 }

  • 相关阅读:
    拦截器和过滤器区别
    sql语句查询出数据重复,取唯一数据
    bootstrap ace treeview树表
    bootstrap 时间选择器 datetime
    ajax请求后加额外的数据
    使用ajax请求,模态框调用并更改密码
    ajax get和post请求 后端接收并返回数据
    类的访问级别
    继承与组合
    类型转换函数
  • 原文地址:https://www.cnblogs.com/zsj576637357/p/2422106.html
Copyright © 2011-2022 走看看