数字三角形
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
回专题模式回学习阶段模式
【题目名称、来源】
数字三角形ioi94-1
【问题描述】
数字三角形
7
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]}
用两个一维数组轮换赋值可节省空间
存储结构:【测试数据】
【源程序】