HDU2084 数塔【DP】
数塔
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 51530 Accepted Submission(s): 30346
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
问题链接:HDU2084 数塔
问题简述:(略)
问题分析:(略)
程序说明:
动态规划问题,有两种解法。
方法一:
不使用额外数组,从顶向下计算。
方法二:
使用额外数组,从底向上计算。需要注意数组大小!要多一行和一列保证可靠。
题记:(略)
参考链接:(略)
AC的C++语言程序如下:
/* HDU2084 数塔 */#include <iostream>
#include <string.h>using namespace std;const int N = 100;
int a[N + 1][N + 1], dp[N + 1][N + 1];int main()
{int t, n;cin >> t;while(t--) {cin >> n;for(int i=0; i<n; i++)for(int j=0; j<=i; j++)cin >> a[i][j];memset(dp, 0, sizeof(dp));for(int i=n-1; i>=0; i--)for(int j=0; j<=i; j++)dp[i][j] = max(dp[i+1][j],dp[i+1][j+1]) + a[i][j];cout << dp[0][0] << endl;}return 0;
}
AC的C++语言程序(方法一)如下:
/* HDU2084 数塔 */#include <iostream>
#include <string.h>using namespace std;const int N = 100;
int grid[N][N];int setmax(int n)
{for(int i=1; i<n; i++)for(int j=0; j<=i; j++)if(j == 0)grid[i][j] += grid[i-1][j];elsegrid[i][j] = max(grid[i][j] + grid[i-1][j-1], grid[i][j] + grid[i-1][j]);int maxv = 0;for(int i=n-1, j=0; j<n; j++)if(grid[i][j] > maxv)maxv = grid[i][j];return maxv;
}int main()
{int t, n;cin >> t;while(t--) {memset(grid, 0, sizeof(grid));cin >> n;for(int i=0; i<n; i++) {for(int j=0; j<=i; j++)cin >> grid[i][j];}int max = setmax(n);cout << max << endl;}return 0;
}
HDU2084 数塔【DP】相关推荐
- HDU-2084 数塔 经典dp,水
1.HDU-2084 数塔 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 3.总结:从下往上推,最后归于顶点.方程为 dp[i][j] ...
- HDU 2084 数塔(DP)(JAVA版)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2084 数塔 DP
http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走 ...
- HD 2048 数塔 DP(简单递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...
- 1071: 数塔 (动态规划)
题目描述 PIPI在CSU的某个角落发现了一座金字塔,而且这座金字塔是由数字组成的(如下图所示),现在PIPI想到塔顶去看看,它可以从底层任意一个数字出发逐层爬上去.PIPI每次可以爬至上一层相邻的数 ...
- HDU -- 2084 数塔(简单DP)
HDU -- 2084 数塔 题意: 自上而下,选择一条累计和最大的路径 分析: 顶点只与左右两个子节点相关,且子节点路径的选择与顶点无关(无后效性) 状态dp[i][j]:表示(i,j)点向下得到 ...
- hdu 1176 dp 数塔问题
哎,一开始没看到从5开始.... 后来写懵了,用了queue正推,记录能到达的节点,p[i+1][j] = max(p[i][j],max(p[i][j-1],p[i][j+1])) 嗯,用stl m ...
- 数塔(HDU-2084)
Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大 ...
- 动态规划——数塔(hdu2084)
首先介绍一下动态规划: 动态规划(dynamic programming),我们称之为DP,是求最优解的一种很常见的方法. 思想和背包基本一样,如对背包感兴趣的可以移步 http://blog.csd ...
最新文章
- FPGA的设计艺术(16)逻辑设计中无刻不在的判断之if/case语句
- 10.QML Qt Quick Controls 2之imagine style
- LambdaMART简介——基于Ranklib源码(二 Regression Tree训练)
- python数据分析_上海交大学姐带你10分钟学会Python数据分析_python_教育
- python:pytest优秀博客
- java面试题34下面关于程序编译说法正确的是()
- 读取文件卡顿_奥睿科IV300固态硬盘评测:35克,读取超900M/s?
- linux 自动ping脚本,ping自动报警shell脚本forlinux
- 大华服务器系统配置图,大华磁盘阵列配置说明指南.doc
- 开发技巧 | Python极简实现滑动平均滤波(基于Numpy.convolve)
- ASTC纹理压缩格式(Adaptive Scalable Texture Compression)
- 计算机毕业设计-基于springboot的社区志愿者管理系统
- 利用matlab求解常数e,利用matlab软件求解常数e和欧拉常数γ.docx
- 优秀程序员的博客有哪些?(2021 年 3 月版)
- CSS3 - @keyframes
- 年仅28岁的程序员宣布从字节跳动退休,他是如何实现财务自由的?
- 思维工具1: SCAMPER
- forward完美转发
- 0428-项目再开发2.0
- 宝塔开放php openssl,宝塔面板安装第三方插件 Encryption365™ SSL 证书宝塔客户端 – 可以申请IP证书...
热门文章
- 前端JAVASCRIPT模块化开发
- MongoDB的Go语言驱动----mgo的使用指南
- 鼓励玩家自创,大量的UGC能为手游续命吗?
- AS3的事件模型 .
- 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
- 理解AOP思想(面向切面编程)
- oracle如何获取日期月份差,Oracle获取日期和月份
- pyinstaller cx_oracle,使用pyinstaller打包使用cx_Oracle模块的程序出现The specified module could not be found的问题...
- 嵌入式论文3000字_普通期刊发表论文费用是多少
- 黑客Alex Tapanaris与PDF文档