HDU 2084 数塔 DP入门
来源:互联网 发布:python基础教程怎么样 编辑:程序博客网 时间:2024/06/02 18:14
点击打开链接
数塔
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13969 Accepted Submission(s): 8306
Problem Description
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
Input
输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。
Output
对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。
Sample Input
1573 88 1 0 2 7 4 44 5 2 6 5
Sample Output
30
Source
2006/1/15 ACM程序设计期末考试
Recommend
lcy
#include<stdio.h>int z[107][107],dp[107][107];int max(int x,int y){ return x>y?x:y;}int main(){ int m; scanf("%d",&m); while(m--) { int n; scanf("%d",&n); for(int a=1;a<=n;a++) for(int b=1;b<=a;b++) { scanf("%d",&z[a][b]); dp[a][b]=-99999; } dp[1][1]=z[1][1]; for(int c=1;c<=n;c++) for(int d=1;d<=c;d++) { dp[c+1][d]=max(dp[c+1][d],dp[c][d]+z[c+1][d]); dp[c+1][d+1]=max(dp[c+1][d+1],dp[c][d]+z[c+1][d+1]); } int max=-99999; for(int i=1;i<=n;i++) { if(dp[n][i]>max) max=dp[n][i]; } printf("%d\n",max); } return 0;}
- HDU 2084 数塔 DP入门
- HDU - 2084 数塔(dp入门)
- hdu 2084 dp入门数塔问题
- hdu 2084 dp入门 数塔问题
- hdu数塔(dp入门)
- DP入门,HDU 2084 数塔 参考代码
- HDU-2084 数塔(简单DP入门)
- HDU 数塔 (dp入门经典)
- HDU-2048 数塔 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
- shell批量注释
- AVD管理器提示:PANIC:Could not open:AVD名称
- Flex+Papervision3D三维技术研究(前言篇)(转帖)
- 实现类似百度文库的在线预览office文档
- 1.1.1---Greedy Gift Givers
- HDU 2084 数塔 DP入门
- 求余数的妙用
- 标签
- c++ 利用file文件流读取文件
- 单向hash函数
- 大整数相加
- Mac OS Terminal 基本指令(全)
- python-str函数详解
- 关于《JavaScript高级程序设计(第2版)》中的一句话