(HDOJ)数塔(动态规划)

来源:互联网 发布:企业内部数据共享方案 编辑:程序博客网 时间:2024/06/06 05:02

Problem Description

在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:

这里写图片描述
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?

已经告诉你了,这是个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程序设计期末考试


AC代码

#include<iostream>#include<algorithm>using namespace std;int ans[110][110];int data[110][110];int main(){    int m,n;//m用来存储需要输入的树塔的量    cin >> m;    for (int k = 0; k < m; k++)//for循环输入n个树塔的值    {        cin >> n;//n用来存储树塔层数        for (int i = 0; i < n; i++)        {            for (int j = 0; j <= i; j++){                cin >> data[i][j];            }        }        for (int i = n - 2; i >= 0; i--){            for (int j = 0; j <= i; j++){                data[i][j] = max(data[i + 1][j], data[i + 1][j + 1])+data[i][j];//从倒数第二层,自底向上计算,每一层的节点的数据为下一层左右节点中的最大值,加上此节点数据            }        }        cout << data[0][0]<<endl;    }    return 0;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机和助理打不开怎么办 苹果我的世界打不开怎么办 ps试用7天到期了怎么办 皮肤锁不住水份怎么办 硫酸弄到皮肤上怎么办 直播时图像反看怎么办 快手直播权限被收回怎么办 快手直播权限被收回了怎么办 腾讯手游助手玩游戏卡怎么办 电脑直播视频打不开了怎么办 平板进水开不了机怎么办 苹果平板进水开不了机怎么办 苹果平板电脑进水了怎么办 电脑换主机以前的文件怎么办 货车卖了没过户怎么办 微交易出金不了怎么办 直播时出现央视影音客户端怎么办 qq账号暂时无法登录怎么办 饿了吃东西胃疼怎么办 早上不吃饭胃疼怎么办 孕晚期胃疼呕吐怎么办 胃疼了一晚上怎么办 微信视频图像倒立怎么办 ps链接图层锁定怎么办 慕课过时间了怎么办 异地恋又要考研怎么办 阴阳师手机绑定上限了怎么办 高考口令卡丢了怎么办 网易将军令换手机了怎么办 须弥bb有弱点土怎么办 战网密码忘记了怎么办 梦三账号忘了怎么办 快手手机号被注册了怎么办 快手该手机号已注册怎么办 手机号被别人注册了快手怎么办 快手显示手机号已注册怎么办 163的邮箱忘了怎么办 河长制账号密码忘了怎么办 网易登录名忘了怎么办 网易通行证安全手机忘了怎么办 美团数据获取失败怎么办