【HDU 2084】数塔(dp)
来源:互联网 发布:胸痛中心数据填报 编辑:程序博客网 时间:2024/05/22 22:50
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题,也是dp的经典题,有两种方法:
①自上而下递推,不建议使用这种方法,因为状态太多。(可以好好想想为什么)
②自下而上,推到最高层时只有一种状态,而且一定是最优解。
代码
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=100+5;int dp[maxn][maxn],n;int main(){ int t; scanf("%d",&t); while(t--) { memset(dp,0,sizeof(dp)); scanf("%d",&n); for(int i=1;i<=n;i++) { for(int j=1;j<=i;j++) scanf("%d",&dp[i][j]); } for(int i=n;i>=1;i--) { for(int j=1;j<=i;j++) { dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]); } } printf("%d\n",dp[1][1]); } return 0;}
0 0
- hdu 2084 数塔(DP水)
- hdu 2084 数塔(dp ,水)
- HDU 2084 数塔(DP)
- hdu 2084 数塔(水题,dp)
- HDU -- 2084 数塔(简单DP)
- HDU - 2084 数塔(dp入门)
- HDU 2084 数塔 (经典dp)
- hdu 2084 数塔(DP)
- hdu 2084 数塔(dp)
- HDU 2084 数塔(DP)
- HDU 2084 数塔(经典dp)
- hdu 2084 数塔 <dp(模板)>
- 【HDU 2084】数塔(dp)
- 【HDU】-2084-数塔(简单DP)
- (简单DP)HDU 2084 数塔
- HDU 2084 数塔(基础dp)
- HDU 2084 数塔(dp)
- HDU 2084 数塔 (dp)
- Zookeeper动态更新服务器地址
- 播放视频
- HibernateTemplate的一些常用方法总结
- Servlet学习笔记-开篇
- thinkcmf在apache中无法启用rewrite的修改办法
- 【HDU 2084】数塔(dp)
- 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》 笔记1
- iOS 常见错误以及错误分析解决
- 初识Velocity
- 常见几个linux基本语法命令
- 使用nginx后如何在web应用中获取用户ip及原理解释GOOD
- RGB与YCbCr颜色空间的转换
- 内存堆和栈的区别
- 调试STM8时经常遇到的一些问题