-->
当前位置:首页 > 题库 > 正文内容

主观题:数字金字塔的最大路径

Luz3年前 (2022-11-15)题库834
给定一个正整数n,以及形如以下的数字金字塔(这里n=5):

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


从金字塔的顶部向下直到底部,每个数据可以通过左下或右下到达下一层,这样到达底层可以有许多条路径,现在要求找到一条和值最大的路径,求这个最大和值。

#### 输入格式:
输入n+1行:
第一行为一个正整数n
接下去的n行为数字金字塔数据,每行依次为1个、2个、……、n个整数,同一行的多个整数之间用一个空格分开。
#### 输出格式:
输出为一个整数,表示从顶端到底端各路径中的最大和值。
#### 输入样例:
在这里给出一组输入。例如:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
#### 输出样例:
30

设计(至少)两种不同效率的算法程序,实现以上求最大和值的功能。
并讨论比较它们的理论时间复杂性和实际运行时间的表现。







答案:评分政策:
程序员(Programmer): 实现两个算法的函数 (30 分) 以及测试程序 (20 分) ,并有足够的注释(注释量不少于代码行的30%)。
测试员(Tester): 对每种测试案例选定n及重复次数K 并完成上述表格的填写 (8 分),画出性能图表 (12 分),并进行讨论分析 (10 分)。
报告书写员(Report Writer): 书写实验报告的第一章(6 分), 第二章 (12 分), 并完成整体报告 (2分, 统一文档风格)。
附加分(6分):设计的测试问题和应用案例有意义,描述清晰。

打分评估项目数: 6个。
其中项目1~3属于报告书写员负责,项目4~5属于测试员负责,项目6由程序员负责。
项目 1: 6分
封面题目和日期完整 (+2 分). 第一章有完整的问题描述 (+4 分). 以下情况将被扣分:
- 封面不完整 (-1)
- 问题引入只是给定题目的 copy + paste (-3)
- 问题引入不够清晰 – 本章主要说清楚做什么,而不是为什么这么做 (-1 ~ -2)
- 其它扣分 – 请在后面备注中说明.

项目2: 12分
第二章需要包含两个算法的描述(各5分,最好用伪代码),以及主程序的框架(2分)以下情况将被扣分:
- 算法描述不完整 – 要求作者描述所有算法,而不仅仅是一个程序框架 (-2 ~ -10)
- 算法难以理解,甚至还不如读程序易于理解(-2)
- 数据结构描述难以理解,或简单采用C语言(或Java)的规则(-2)
- 只有程序 + 注释, 这是不可接受的 (-4)
- 其它扣分 – 请在后面备注中说明.

项目3: 2分
文档风格要求明晰简洁,以下情况将被扣分:
- 文档风格不一,有打补丁的感觉 (-1)
- 混乱 – 图表中有些数据不完整 (-1)
- 未按要求建立合适的文件夹并压包 (-1)
- 递交内容不完全 – 部分文件丢失 (-1)
- 其它扣分 – 请在后面备注中说明.

项目4: 8分
第三章需要一个完整的测试数据表 (两种方法各4分). 以下情况将被扣分:
- 测试结果有问题: 比如出现ticks少于10的情况,这将导致结果不够精确 (-1)
- 测试结果不够完整,包括但不限于n太小.(-2 ~ -8)
- 其它扣分 – 请在后面备注中说明.

项目5: 22分
第四章需要采用作图(8分)和说明(4分)来比较两个算法,同时对两个算法进行时间复杂性(8分)和空间复杂性(2分)分析。以下情况将被扣分:
- 没有画图 (-8)
- 没有分析为什么一种方法比另一种方法更快 (-1 ~ -4)
- 图示看起来有误导的嫌疑,比如X轴没有合理布局 (-1)
- 时间复杂度和(或)空间复杂度分析遗漏 – 不能仅仅给出结果,而应该有个得出结论的过程 (-4 ~ -10)
- 其它扣分 – 请在后面备注中说明.

项目6: 50分
程序员要实现两个算法函数 (各14分,加2分的可读性) 以及主控程序 (20 分). 以下情况将被扣分:
- 部分函数遗漏 (-14 ~ -30)
- 测试主控程序遗漏 (-20)
- 部分程序不正确 (-1 ~ -20)
- 程序未按要求完成注释 (-5 ~ -30)
- 其它扣分 – 请在后面备注中说明.


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。