数字三角形

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

回专题模式回学习阶段模式

【题目名称、来源】

数字三角形ioi94-1

【问题描述】

数字三角形

38

810

2744

45265

(图3.1-1)

(图3.1-1)示出了一个数字三角形。请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大。

●每一步可沿左斜线向下或右斜线向下走;

●1<三角形行数≤100;

●三角形中的数字为整数0,1,…99;

输入数据:

由INPUT.TXT文件中首先读到的是三角形的行数。

在例子中INPUT.TXT表示如下:

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

输出数据:

把最大总和(整数)写入OUTPUT.TXT文件。

上例为:

30

【所属专题】

动态规划

【适合学习阶段】

第二阶段

【解题思路】

问题分析:

简单的动态规划,类似于从方阵左上角走到右下角,只允许向下或者向右走。

设c[i,j]代表从最底层走到点(i,j)的经过数字最大和,则

C[i,j]=max{c[i-1,j]+num[i,j],c[i-1,j-1]+num[i,j]}

用两个一维数组轮换赋值可节省空间

存储结构:【测试数据】

【源程序】

相关文档
最新文档