hdu 2084 数塔
2016-05-08 11:14
225 查看
数塔
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 34163 Accepted Submission(s): 20384
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
Source
2006/1/15 ACM程序设计期末考试
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int d[101][101],a[101][101]; int t,n; int dfs(int i,int j){ if(d[i][j]>=0) return d[i][j]; //判断d[i][j]是否计算过 return d[i][j]=a[i][j]+(i==n-1?0:max(dfs(i+1,j),dfs(i+1,j+1))); } int main(){ scanf("%d",&t); while(t--){ memset(d,-1,sizeof(d)); scanf("%d",&n); for(int i=0;i<n;i++) for(int j=0;j<=i;j++) scanf("%d",&a[i][j]); printf("%d\n",dfs(0,0)); } return 0; }
相关文章推荐
- codeforces 673A A. Bear and Game(水题)
- 手把手教你反编译别人的app
- android 细数断点续传的坑
- windows网络编程常用
- Javaweb中最简单的文件上传
- Prototype使用Form.Element操作表单控件
- 懒惰的 initialize 方法
- 使用中科大源下载android源码
- 模板
- spring mvc controller
- root用户限制登陆
- 自己动手制作ROM(CM11 for Samsung Galaxy I9100G)
- android——Seneor(获得数据值流程以及同时监听多个sensor)
- SpringMVC 模拟 PUT 提交和 DELETE 方式的提交
- iOS本地数据存取,这里就够了
- Android数据篇(二)
- 用一个小例子,来分析nodejs的异步调用的顺序
- Prototype的JSON支持
- 构建有效的单元测试
- IOS9新特性慢慢整理