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<bits/stdc++.h>

using namespace std;

int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int i,j,n;
int a[200][200],dp[200];
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
scanf("%d",&a[i][j]);
memset(dp,0,sizeof(dp));
for(j=1;j<=n;j++)
dp[j]=a[n][j]; //对最低层进行初始化
for(i=n-1;i>=1;i--)
{
for(j=1;j<=i;j++)
dp[j]=max(dp[j],dp[j+1])+a[i][j]; //状态转移方程 ,由下往上求最大值
}
printf("%d\n",dp[1]);
}
return 0;
}

ACM-DP-数塔问题的更多相关文章

  1. HDU2084基础DP数塔

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  2. UVA 116 Unidirectional TSP(dp + 数塔问题)

     Unidirectional TSP  Background Problems that require minimum paths through some domain appear in ma ...

  3. HDU 1176免费馅饼 DP数塔问题转化

    L - 免费馅饼 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  4. hdoj1176 免费馅饼(dp 数塔)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1176 思路: 这道题不复杂,很明显是个dp题,数据比较大,搜索应该会超时,想到如何初始化,注意细节就差 ...

  5. DP~数塔(hrbustoj1004)

    aaarticlea/bmp;base64,iVBORw0KGgoAAAANSUhEUgAAAtQAAAPgCAYAAAASsev/AAAgAElEQVR4nOzdf4w0x33n9/4rQP4L8s

  6. poj3176--Cow Bowling(dp:数塔问题)

    Cow Bowling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14028   Accepted: 9302 Desc ...

  7. ACM 杭电HDU 2084 数塔 [解题报告]

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  8. HDU-2084 数塔 经典dp,水

    1.HDU-2084   数塔 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 3.总结:从下往上推,最后归于顶点.方程为  dp[i][j] ...

  9. hdu----(2084)数塔(dp)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  10. hdu 2084 数塔 (简单dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory L ...

随机推荐

  1. Apache HTTPD 多后缀解析漏洞复现(Kali)

    ​ 通过vulhub靶场进行复现操作    1.首先搭建靶场环境(采用Kali) cd /vulhub/httpd/apache_parsing_vulnerability //进入对应漏洞目录,具体 ...

  2. oculus按键大全

    // OVRInput.Update(); if (OVRInput.GetUp(OVRInput.Button.Three)) { Debug.Log("remote click" ...

  3. java 操作excel

    需要引入的包 import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.HorizontalAlignmen ...

  4. 关于js数组方法forEach()

    1.forEach()是什么? forEach()是一种数组遍历方法. 在js最基础的遍历数组方法可能是这样的 点击查看代码 var myArr = [1, 2, 3] for(var i = 0; ...

  5. 关于pandas的一些用法

    pandas用法之前我总是把他想的无比复杂.其实也是比较简单的,这个东西在做数据统计的时候还是挺好用的. 然后这里列举几个比较好用的几段代码.偏向数据透视类型pivot的,导出方式是直接在IDE 生成 ...

  6. Git本地仓库的文件夹不显示红色感叹号、绿色对号等图标

    参考 https://blog.csdn.net/Elon15/article/details/125898375 主要是  在文件名前加8个空格(最少8个)!!!!

  7. operations使用研究

    简介 operations支持在peer或者orderer运行过程中,提供基于restful接口的运维服务.包括健康检查.日志level管理.指标metrics接口等.首先利用test-network ...

  8. CentOS7 yum方式安装mysql 5.7

    1.检查服务器上有没有安装mysqlyum安装方式:yum list installed mysql*yum卸载 yum remove 已安装的包卸载完安装包后,删除安装文件rm -rf /var/l ...

  9. 12、jmeter逻辑控制器-临界区控制器

    临界区:说白了就是不并发了 一个个的像独木桥 使用场景:比如提交一个数据  需要一个一个的提交  一个个的改   在数据库改操作的时候 需要用到 临界区控制器 案例:临界区控制器

  10. SQL Server触发器备份后还原

    测试环境SQL Server 2012 select a.definition , b.name,b.is_disabled from sys.sql_modules a inner join sys ...