zoukankan      html  css  js  c++  java
  • hdu 2084 数塔

    http://acm.hdu.edu.cn/showproblem.php?pid=2084

    这是一道很简单的DP题 ,我觉得就是一种思想,从后面往前面每次找和最大的,把每个数更新,一直往上推就可以了。。。

    我用了两种方法,一种的递归,一种递推

    递推代码:

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    int a[100][100];

    void dp(int n)

    {

        for(int i=n-1;i>=0;--i)

        {

                for(int j=i;j>0;--j)

                {

                       if(a[i][j]+a[i-1][j-1]<a[i-1][j-1]+a[i][j-1])

                       a[i-1][j-1]=a[i-1][j-1]+a[i][j-1];

                       else

                       a[i-1][j-1]=a[i][j]+a[i-1][j-1];

                       //printf("%d  ",a[i-1][j-1]);

                } 

                //printf("\n");

        }   

    }

    int main()

    {

        int t,m;

        scanf("%d",&t);

        while(t--)

        {

                  scanf("%d",&m);

                  for(int i=0;i<m;++i)

                  for(int j=0;j<=i;++j)

                  scanf("%d",&a[i][j]);

                  dp(m);

                  printf("%d\n",a[0][0]);

        }

        system("pause");

        return 0;

    }

    递归代码:

    #include <stdio.h>

    #include <string.h>

    #include <stdlib.h>

    int a[102][102];

    void dp(int n)

    {

         if(n==0)  return ;

         for(int j=n;j>=0;--j)

         {

                 if(a[n][j]+a[n-1][j-1]<a[n-1][j-1]+a[n][j-1])

                       a[n-1][j-1]=a[n-1][j-1]+a[n][j-1];

                       else

                       a[n-1][j-1]=a[n][j]+a[n-1][j-1];

         }

         dp(n-1);

    }

    int main()

    {

        int t,m;

        scanf("%d",&t);

        while(t--)

        {

                  scanf("%d",&m);

                  for(int i=0;i<m;++i)

                  for(int j=0;j<=i;++j)

                  scanf("%d",&a[i][j]);

                  dp(m);

                  printf("%d\n",a[0][0]);

                  

        }

        system("pause");

        return 0;

    }

  • 相关阅读:
    爬虫
    PEP8 常用规范
    struts2入门Demo
    JDBC连接mysql数据库操作
    MongoDB学习笔记—03 增删改查操作
    MongoDB学习笔记—02 MongoDB入门
    MongoDB学习笔记-01 简介、安装
    ElasticSearch学习笔记-02集群相关操作_cat参数
    ElasticSearch学习笔记-01 简介、安装、配置与核心概念
    CSS学习
  • 原文地址:https://www.cnblogs.com/yuelingzhi/p/2125547.html
Copyright © 2011-2022 走看看