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

思路:

设:dp[i][j]为第i行第j列的最大和

则:

  • 状态转移方程:dp[i][j]=max(dp[i-1][j-1],f[i-1][j])+num[i][j];
  • 边界条件:dp[1][1]=dp[1][1]

记得在最后一行寻找最大值即可

Source Program

#include<iostream>
#include<cstring>
#define N 101
using namespace std;int num[N][N];
int dp[N][N];int main()
{int c,n;int i,j;cin>>c;while(c--){memset(dp,0,sizeof(dp));/*初始化*/cin>>n;for(i=1;i<=n;i++)for(j=1;j<=i;j++)cin>>num[i][j];dp[1][1]=num[1][1];/*边界条件*/for(i=2;i<=n;i++)for(j=1;j<=i;j++)dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+num[i][j];//状态方程int maxx=-99999999;for(i=1;i<=n;i++)//寻找最后一行最大值maxx=max(maxx,dp[n][i]);cout<<maxx<<endl;}
}

数塔(HDU-2084)相关推荐

  1. J - 数塔 HDU - 2084(深搜,记忆化搜索+)

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

  2. 数塔 HDU - 2084

    题目 给定一个具有 N 层的数字三角形,从顶至底有多条路径,每一步可沿左斜线向下或沿右斜线向下,路径所经过的数字之和为路径得分,请求出最大路径得分. 输入 1 5 7 3 8 8 1 0 2 7 4 ...

  3. 数塔(hdoj 2084,动态规划递推)

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

  4. HDU -- 2084 数塔(简单DP)

    HDU -- 2084  数塔 题意: 自上而下,选择一条累计和最大的路径 分析: 顶点只与左右两个子节点相关,且子节点路径的选择与顶点无关(无后效性) 状态dp[i][j]:表示(i,j)点向下得到 ...

  5. HDU 2084 数塔 DP

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走 ...

  6. HDU 2084 数塔(DP)(JAVA版)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  7. hdu 2084 数塔(DP)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  8. 数塔(杭电2084)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. hdu 1176 dp 数塔问题

    哎,一开始没看到从5开始.... 后来写懵了,用了queue正推,记录能到达的节点,p[i+1][j] = max(p[i][j],max(p[i][j-1],p[i][j+1])) 嗯,用stl m ...

  10. [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]

    Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...

最新文章

  1. TVM性能评估分析(一)
  2. 程序员如何才能提高自己?通过一次重构代码讲解自己的感受【有代码比较】...
  3. 浅析网站SEO优化中导航优化的四大技巧!
  4. leetcode算法题--完美数
  5. 安装MindStudio
  6. java 内存屏障类型_Java内存模型精讲
  7. discuz安装_手动搭建 Discuz! 论坛
  8. 为iptables增加layer7补丁(Linux2.6.25内核
  9. iPhone 11外壳保护套曝光:噢,这个浓厚的老干部风格
  10. mysql 为什么不能安装_下载的mysql怎么无法安装
  11. python反归一化_pytorch 归一化与反归一化实例
  12. Git 时光穿梭鸡 管理修改
  13. python模块之httplib(在py3中功能进一步强大,请详看文档)
  14. AngularJs依赖注入的研究
  15. 初夏小谈:浅谈字节序,TCP,UDP协议
  16. 编写数码管c语言程序,跪求单片机0~99数码管显示用C语言编写的程序
  17. HDU - 6070 Dirt Ratio (二分 + 线段树)
  18. 已安装visual studio 如何添加新模板和组件
  19. 李开复:从毛遂自荐到萌生去意
  20. 航海世纪服务器维护中,航海世纪2月28日例行维护公告

热门文章

  1. 雷军 1994 年写的代码,你见过吗?厉害了!
  2. 很多未解之谜终于有答案了——2018年JVM生态系统报告出炉
  3. discuz! X3 更改域名全程记录 (修改域名的方法)
  4. jeecg-framework-3.1.0.RELEASE 正式发布
  5. D语言/dlang 2.085.0 发布,GC、Objective-C 混编增强
  6. JS每日一题:vue中keepalive怎么理解?
  7. SpringBoot使用@Cacheable实现最简单的Redis缓存
  8. vue2.0项目结构和打包发布
  9. Java 中 @Autowired与@Resource的区别
  10. Excel 2016新增函数之IFS