HDOJ 2084 数塔
2016-08-20 16:13
113 查看
数塔
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 36773 Accepted Submission(s): 22041
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
#include<stdio.h> #define max(a,b) a>b?a:b //应该学习这种方法 int main(){ int dp[105][105]; int n, m, i, j; scanf("%d",&n); while(n--){ scanf("%d",&m); //输入数据 for(i = 1; i <= m; i++){ for(j = 1; j <= i; j++){ scanf("%d",&dp[i][j]); } } for(i = m; i >= 1; i--){ //DP核心步骤 for(j = i; j >=1; j--){ dp[i][j] += max(dp[i+1][j],dp[i+1][j+1]); } } printf("%d\n",dp[1][1]); } return 0; }
相关文章推荐
- hdoj2084 数塔 (DP水题)
- hdoj.2084 数塔 20141029
- hdoj 1231-最大连续子序列
- HDOJ 2444 - The Accomodation of Students 判断一个图是否是二分图.二分图的条件
- [HdOJ]5170 GTY's math problem
- hdoj 2802 F(N)【递推 规律】
- HDOJ-----2553N皇后问题
- POJ1050 HDOJ1081 TO THE MAX
- HDOJ 2136
- 【混合欧拉】 HDOJ 3472 HS BDC
- hdoj 1026 Ignatius and the Princess I 【bfs + 路径记录 【好题】 】
- HDOJ 1242 Rescue(优先队列+BFS)
- HDOJ2270(How Many Friends Will Be Together With You)
- hdoj 1003 Max Sum
- 【并查集】 HDOJ 5176 The Experience of Love
- HDOJ 2586 How far away ? (LCA ST算法)
- HDOJ 1712 ACboy needs your help(分组背包)
- HDOJ 1756 Cupid's Arrow
- HDOJ 1116/POJ 1386 - Play on Words 判断有向图哈密顿通路转化为判断有向图是否存在欧拉通路
- HDOJ-1397-Goldbach's Conjecture 解题报告