DP 数字三角形
Description
........7
......3 8
....8 1 0
..2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.
Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle,
all integers, are between 0 and 99.
Output
Your program is to write to standard output. The highest sum is written as an integer.
Sample Input
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Sample Output
30
这道题咋一看挺简单,最容易想到的是采用递归,遍历若有的路径,对所有的路径求和,然后求出最大值,代码如
下:
然而,递归终究不是最理想的解法,无论从时间复杂度还是从空间复杂度都不是最理想的选择,我们可以换一种思
维,“自底向上”逐个比较最大值,从倒数第二层开始,用下一层子节点的最大值与本节点相加,“逆流而上”,见
代码:
呵呵,代码量是不是少了很多,而且时间复杂度和空间复杂度都降低了!(第二种解法来源于网上,感谢原作者)
分享到:
相关推荐
Pku acm 第1163题 The Triangle 代码,有详细的注释,动态规划
acm poj 比较详细的将poj的题目进行了分类,如dp,搜索,数据结构等等
### ACM POJ PKU 最全题目分类解析 #### 动态规划(DP) 在计算机科学领域,动态规划(Dynamic Programming, DP)是一种重要的算法思想,主要用于解决多阶段决策过程中的优化问题。它通过将原问题分解成相互重叠的...
ACM Poj Pku 解题报告答案 打包 下载 600多题 史上最全 不是网上乱传的200多题,更不是100多题就挂着10分才能下的题 下了这个 大家也不要浪费分数去下载其它版本的了,基本上都有 共享 一起进步 中国加油 ACMer...
【acm poj300题分层训练】是针对ACM竞赛训练的一个题集,旨在帮助参赛者系统地提升编程和算法能力。这个训练计划分为初级、中级两个阶段,涵盖了许多核心的算法和数据结构。 **初级阶段**主要关注基础算法和数据...
【ACM POJ 题目分类】是针对ACM(国际大学生程序设计竞赛)中的问题进行的一种整理和归类,旨在帮助参赛者更有效地学习和准备比赛。这些题目涵盖了不同的算法和编程技巧,通常根据难度和涉及的主题进行划分。在POJ...
是一道动态规划的基础题。
标题 "ACM.zip_ACM_poj_poj3187_poj3669" 提供的信息表明,这个压缩包包含的是与ACM(国际大学生程序设计竞赛)相关的编程题目解决方案,具体是POJ(Programming Online Judge)平台上的两道题目,编号分别为poj3187...
ACM poj1737,Connected Graph
北京大学ACM详解poj1001, 内容很充实。
在ACM(国际大学生程序设计竞赛)中,POJ(普林斯顿在线判题系统)是一个广受欢迎的训练平台,提供了大量的编程题目供参赛者练习。这个压缩包“acm poj题目分类介绍 包含一个题解文档”显然是为了帮助参赛者更好地...
poj经典动态规划题目解题报告,包括经典的动态规划题目20多道,可以作为学习动态规划系统的资料,包括题目: Pku acm 1179 Polygon Pku acm 1125 Stockbroker Grapevine Pku acm 1160 post office Pku ...
1001 1002 1003 1004 1005 1006 1007 1008 1011 1012 1013 1014 1015 1017 1018 1019 1028 1032 1042 1046 1050 1061 1065 1066 1067 1077 1080 1083 1088 1094 1111 1125 1135 1141 1157 1160 1161 1163 1166 1170 ...
The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26414 Accepted: 15435 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a program...
### ACM POJ 1002题解摘要 #### 题目背景与目标 本题目来自POJ(Pacific OpenJudge)平台上的一个经典问题,编号为1002。题目要求解决的是电话号码标准化的问题,即如何将各种形式的电话号码转换成统一的标准格式...
【标题】:杭电ACMhdu1163 【描述】:这是一道源自杭州电子科技大学(Hangzhou Dianzi University,简称HDU)的ACM编程竞赛题目,编号为1163。这类问题通常需要参赛者利用计算机编程解决数学、逻辑或算法上的挑战,...
pojACM题目分类,便于各类型同学分别做题有所参考
* 短代码:1147、1163、1922、2211、2215、2229、2232、2234、2242、2245、2262、2301、2309、2313、2334、2346、2348、2350、2352、2381、2405、2406 * 中短代码:1014、1281、1618、1928、1961、2054、2082、2085...
总共220题,题号囊括1000-3000多,从最简单到最典型。源码书写清晰优美,适合初学者入门,同样适合中级进阶。 这是我找了很久找到的,非常全,强烈向...在POJ上练习ACM和想实践cpp的朋友都适用,希望大家能学有所成!~
根据给定的文件信息,以下是对“ACM-POJ算法训练指南”的详细解析与相关知识点的归纳: ### 一、基本算法 1. **排序**:包括了基础的排序算法,如快速排序(poj1753, poj2965),是算法学习的基础。 2. **搜索**:...