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. Linux_GItlab

    Gitlab实战 Gitlab安装 Gitlab简单使用 配置Jenkins 向 Gitlab 拉取代码 配置gitlab 触发器 Gitlab安装 环境需求: 一台干净的新机器(防止端口冲突) 配置 ...

  2. js两个数组对象合并去重

  3. vue3 技术浏览 收藏

    Vue3教程:Vue3.0 + Vant3.0 搭建种子项目 链接:https://www.cnblogs.com/han-1034683568/p/13875663.html

  4. .NET dropdownlist控件绑定数据后,添加“全部”项,实现功能

    DropDownList在从数据库中得到数据源绑定后,计划为其添加一个"全部"或"不限"之类的项,添加方法现知的有两种: 1:在脚本中直接添加:<asp: ...

  5. Maven-高级

    Mvaen 高级 1 导入其他工程 资源文件 先install到仓库里 然后根据组织名项目名版本号写在dependence里正常导入 <dependence> <groupId> ...

  6. cadence-ADE反相器仿真

    Cadence-ADE仿真 连接电路 鼠标移至schematic绘制区域,单击放置inv i键继续添加gnd, vdc(3.3V), vpulse(0-3.3V,Period 1us,Pulse wi ...

  7. windows server 2012 AD域服务器的搭建安装 子域的创建加入 客户机加入域环境(Active Directory域)

    1,安装Active Directory域前的准备工作 2,安装Active Directory域 3,加入子域(可选) 4,加入客户机 ******************************* ...

  8. TiSpark 初级应用

    目前正在使用tispark 进行离线计算,简单记录一下操作过程 一.技术验证 场景:计算每次充电过程中单体最高电压的变化速率  解决方案:     使用tispark 直接访问tidb的数据,采用sp ...

  9. .net core 版本避坑 无法打开项目文件。 无法找到 .NET SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配。

    打开项目根目录,输入 dotnet --version  ,查看本机安装的最高版本的sdk: 如果源文件中存在global.json文件,直接打开修改即可: 不存在则接着在1步骤后输入: dotnet ...

  10. C++ read 读取字节数与设置不一样

    当需要读取二进制文件时,C++可以采用ofstream流,并设置模式为ios::binary,就可以通过read函数进行按照字节读取了. 需要注意的是: 如果模式未进行设置,默认将以文本方式读取,此时 ...