Input

输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。

Output

对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。

Sample Input

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

Sample Output

30
 #include<iostream>
#include<math.h>
#include<malloc.h>
using namespace std; int num=; typedef struct Tree
{
int val;
int max;
struct Tree*left;//左分支节点
struct Tree*right;//右分支节点
struct Tree*sib;//兄弟节点
struct Tree*next;//linenumber
struct Tree*pre;//前继行
}Tree,*TreeNode; TreeNode first; void construction(int i,int j,int loc,int col)//构造树形结构
{
int linenum;
linenum=j;//return the linenumber; int k;
if(linenum==)
first->val=i;
else{
TreeNode p;
p=first; /* for(k=1;k<linenum-1;k++)//锁定行
{
p=p->next;
}*/
while(p->next!=NULL)
p=p->next;//锁定行 TreeNode q;
q=(TreeNode)malloc(sizeof(Tree));
q->val=i;
q->left=NULL;
q->right=NULL;
q->next=NULL;
q->sib=NULL;
//赋值 if(col==)//处理第一列的情况
{
p->next=q;
q->pre=p;
q->sib=NULL;
q->next=NULL; }
else
{
if(col==)
{}
else
{
while(p->sib!=NULL)
{ p=p->sib;
}
} p->sib=q;
q->sib=NULL; } //返回上一行 p=first;
for(k=;k<linenum-;k++)//锁定上一行
{
p=p->next; }
//锁定上一列的位置 for(k=;k<col-;k++)
{ if(p->sib!=NULL)
p=p->sib;
} if(col==)
{ p->left=q; }
else if(col==linenum)//debug
{
p->right=q; } else
{ p->right=q; p=p->sib; p->left=q; } } } void cal(TreeNode p)
{
while(p->next!=NULL)
p=p->next; p=p->pre; TreeNode q,f;
q=p;
while(q!=NULL)
{
f=q;
while(f!=NULL)
{
int m;
m=f->left->val+f->val;
int n;
n=f->right->val+f->val;
if(m>n)
f->val=m;
else
f->val=n;
f=f->sib; }
q=q->pre;
} } int main()
{
int input,m;
first=(TreeNode)malloc(sizeof(Tree));
first->next=NULL;
first->sib=NULL;
first->left=NULL;
first->right=NULL;
first->pre=NULL;
//Initial the first node
cin>>input;
m=input;
int j=;
for(int i=;i<=m;i++)
{
for(int k=;k<=i;k++)
{
int a1;
cin>>a1;
construction(a1,i,j,k);
j++;
}
} cal(first);
cout<<first->val<<endl;
return ;
}

 

数塔问题(DP算法)自底向上计算最大值的更多相关文章

  1. HDU 2084 数塔(简单DP入门)

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

  2. HDU 2084 数塔 (dp)

    题目链接 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数 ...

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

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

  4. hdu 2084 数塔 (简单dp)

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

  5. 数塔(dp)

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

  6. HDOJ.2084 数塔(DP)

    数塔 点我挑战题目 题意分析 DP的思想,自上而下计算. [这几天比较忙 有空补上] 代码总览 /* Title:HDOJ.2084 Author:pengwill Date:2017-1-14 */ ...

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

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

  8. 数字三角形/数塔问题(DP入门题)

    有形如下图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走,一起走到底层,要求找出一条路径,使路径上的值最大. 样例输入: 5 13 11 8 12 7 26 6 14 15 8 12 7 ...

  9. dp入门--poj 1163数塔

                                                                                                        ...

随机推荐

  1. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  2. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...

  3. Android性能优化之利用Rxlifecycle解决RxJava内存泄漏

    前言: 其实RxJava引起的内存泄漏是我无意中发现了,本来是想了解Retrofit与RxJava相结合中是如何通过适配器模式解决的,结果却发现了RxJava是会引起内存泄漏的,所有想着查找一下资料学 ...

  4. 深入理解CSS六种颜色模式

    前面的话 赏心悦目的颜色搭配让人感到舒服,修改元素颜色的功能让人趋之若鹜.但颜色规划不当,会让网站用户无所适从.颜色从<font color="">发展至今,保留了很多 ...

  5. [原]Redis主从复制各种环境下测试

    Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...

  6. 深入.NET平台和C#编程总结大全

    对于初学者的你,等到你把这个看完之后就更清楚地认知.NET和C#编程了,好了废话不多说,开始吧!                                                     ...

  7. Java类变量和成员变量初始化过程

    一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ...

  8. %iowait和CPU使用率的正确认知

    resources 理解 %IOWAIT (%WIO) LINUX系统的CPU使用率和LOAD Linux Performance Observability Tools How Linux CPU ...

  9. Kotlin类:功能更强、而更简洁(KAD 03)

    作者:Antonio Leiva 时间:Dec 7, 2016 原文链接:http://antonioleiva.com/classes-kotlin/ Kotlin类尽可能简单,这样用较少的代码完成 ...

  10. 简历生成平台项目开发-STEP1问卷设计

    周五课程结束完后,小组建立QQ群和微信群,着手讨论项目问题.一开始的大概想法:就业信息平台,收集企业招聘信息和就业生资料,提供给学生和企业的校企对接平台.后来发现群里谭卓同学也有个相关的思路,经过商量 ...