Hdu 2084 数塔 简单
2018-01-31 20:32
211 查看
Hdu 2084
题目描述:
在讲述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 ,从上一层推导当前一层,一直到最后一层,然后求最后一层的最大值。
数据量比较小,不用滚动数组。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
using namespace std ;
int dp[101][101] ;
int main(){
int cases , n , ret ;
scanf( "%d" , &cases ) ;
while( cases-- ){
scanf( "%d" , &n ) ;
memset( dp , 0 , sizeof( dp ) ) ;
for( int i = 1 ; i <= n ; ++i )
for( int j = 1 ; j <= i ; ++j )
scanf( "%d" , &ret ) , dp[i][j] = max( dp[i-1][j] , dp[i-1][j-1] ) + ret ;
int ans = dp
[1] ;
for( int i = 2 ; i <= n ; ++i )
ans = max( ans , dp
[i] ) ;
printf( "%d\n" , ans ) ;
}
return 0 ;
}
相关文章推荐
- hdu(poj)-2084(3176)-数塔-简单dp
- HDU-2084 数塔(简单DP入门)
- DP_简单DP数塔(HDU_2084)
- hdu 2084 数塔 (简单dp)
- HDU 2084 数塔 简单DP
- HDU2084 简单的 动态规划
- (简单DP)HDU 2084 数塔
- HDU 2084 数塔(简单DP入门)
- HDU 2084 数塔 (C++) (简单的动态规划)
- hdu 2084 数塔(简单dp)
- 【HDU】-2084-数塔(简单DP)
- hdu 2084 简单dp
- HDU2084_数塔【简单题】【数塔】
- HDU 2084 数塔(简单DP)
- [递推简单dp]-hdu 2084 数塔
- hdu 2084 数塔(简单的dp)
- hdu 2084 数塔(水) 经典简单DP
- Hdu 2084 数塔 简单DP
- [ACM] hdu 2084 数塔 (简单DP)
- [ACM] hdu 2084 数塔 (简单DP)