【160406 20:00】二维矩阵中的最大联通子数组和
此篇讲的是截止时间至 4 月 6 日 20:00 的二维矩阵中的最大联通子数组和问题之小结。相应的题目,可以见王建民老师的博客中第 3 题:
http://www.cnblogs.com/wangjm1975/p/5411663.html
问题简析
这是一个最优化问题,在前两题的指引下,我们很容易会往动态规划方向去思考。不过很遗憾,本题用动态规划是解决不了的——用动态规划方法解决的,都会在某种情形下失效(得到错误答案)。事实上,虽然未经完整证明,但这可能是一个 NP 困难问题。因此,尝试用动态规划在多项式时间内解决,是不现实的。
评分标准
这次作业满分 10 分,采取扣分制与体验分相结合的方式。具体来说:
- 每见到一处问题/缺陷,扣除该类问题/缺陷相应的分数;
- 运行以下测试用例,程序每出现一个不符合预期的行为,扣 0.5 分;
- 与此同时,还会有 \(\pm 1\) 分的体验分浮动:博文结构清晰、排版整洁、代码清爽等情况酌情加分,反之扣分。
测试用例及测试脚本
可在此下载:
https://files.cnblogs.com/files/ChenMeng0518/maxConnectiveSubArraySum.tar.gz
9 个测试用例的预期输出:
- 程序应当识别空矩阵,提示错误或抛出异常
- 程序应当识别不合法的输入,提示错误或抛出异常
- 单点及纯负数,应当返回 -1
- 单行,应当返回 16
- 应当返回 6
- 应当返回 49
- 应当返回 50
- 应当返回 135
- 应当返回 139
每个测试用例都有四种形式,以应对同学们读入文件的不同风格。因此,如果测试失败,请不要以「文件形式不同」的原因来找我。
普通形式:
2,
2,
1, 2
3, 4
空格形式:
2,
2,
1 2
3 4
全空格模式:
2
2
1 2
3 4
逗号形式:
2,
2,
1, 2, 3, 4
10 分
- 作业迟交超过 24 小时
- 未能完成任务
5 分
- 没有提交代码(至少核心代码)
2 分
- 作业迟交,但未超过 24 小时
- 博文代码没有使用「代码模式」编辑(这很重要,已经是第 7 次作业了,因此提升权重,望引起重视)
- 博文中,非代码内容使用了「代码模式」编辑(这很重要,已经是第 7 次作业了,因此提升权重,望引起重视)
1 分
- 没有阐述设计思想
- 没有运行结果截图
- 没有总结分析;或总结中没有实际内容:对本次编程的分析或遇到的问题和解决方法
每项 0.5 -- 2 分
- 额外的问题
- Cpp 编程,忽略
namespace
- Cpp 编程,使用
void main ()
而不是int main ()
- Cpp 编程,标准库头文件都没有
.h
结尾 - 不恰当的循环变量,可能引起数组越界,引发 core dump
new
了没有delete
或者malloc
了没有free
- 现阶段不要用非标准的函数(例如
sscanf_s
),无谓地降低自己程序的可移植性。
- Cpp 编程,忽略
评分结果
学号 | 截至上次作业得分小计 | 160406 20:00 | 小计 |
---|---|---|---|
20122951 | 30 | 0.5 | 30.5 |
20132897 | 38 | 5.5 | 43.5 |
20132900 | 22.5 | 3.5 | 26 |
20132902 | 37.5 | 5.5 | 43 |
20132907 | 40 | 4.5 | 44.5 |
20132917 | 41.5 | 5 | 46.5 |
20132922 | 38 | 6 | 44 |
20132927 | 26.5 | 1.5 | 28 |
20132935 | 40.5 | 5.5 | 46 |
20132967 | 34.5 | 4.5 | 39 |
20132970 | 25.5 | 3.5 | 29 |
20132984 | 37.5 | 7 | 44.5 |
20132985 | 34 | 5.5 | 39.5 |
20133005 | 32 | 4.5 | 36.5 |
20133009 | 35.5 | 5.5 | 41 |
20133012 | 32.5 | 3.5 | 36 |
20133014 | 19 | 4.5 | 23.5 |
20133018 | 22 | 4.5 | 26.5 |
20133039 | 37 | 6.5 | 43.5 |
20133040 | 29 | 5 | 34 |
20133045 | 38 | 3.5 | 41.5 |
20133048 | 30.5 | 5 | 35.5 |
20133051 | 39 | 4.5 | 43.5 |
20133054 | 40 | 6.5 | 46.5 |
20133057 | 23.5 | 7 | 30.5 |
20133059 | 27 | 7 | 34 |
20133062 | 16.5 | 4.5 | 21 |
20133064 | 30.5 | 3.5 | 34 |
20133070 | 31 | 3.5 | 34.5 |
20133075 | 32 | 3.5 | 35.5 |
20133078 | 44 | 8 | 52 |
20133081 | 33.5 | 4.5 | 38 |
20133087 | 34 | 3.5 | 37.5 |
20133100 | 41.5 | 7.5 | 49 |
20132899 | 13 | 0 | 13 |
20132901 | 15 | 3.5 | 18.5 |
20132903 | 38.5 | 5.5 | 44 |
20132910 | 38.5 | 5.5 | 44 |
20132912 | 42 | 6 | 48 |
20132919 | 49.5 | 6.5 | 56 |
20132924 | 50.5 | 6.5 | 57 |
20132958 | 42 | 5.5 | 47.5 |
20132959 | 40 | 6 | 46 |
20132965 | 40 | 6 | 46 |
20132971 | 38 | 6 | 44 |
20132980 | 36.5 | 7 | 43.5 |
20133004 | 34 | 1.5 | 35.5 |
20133008 | 32 | 5.5 | 37.5 |
20133010 | 14 | 2.5 | 16.5 |
20133013 | 35 | 3.5 | 38.5 |
20133017 | 30.5 | 3.5 | 34 |
20133019 | 36 | 3.5 | 39.5 |
20133024 | 40.5 | 5.5 | 46 |
20133027 | 41.5 | 5.5 | 47 |
20133031 | 26.5 | 0.5 | 27 |
20133042 | 27 | 5.5 | 32.5 |
20133043 | 5 | 0 | 5 |
20133044 | 4.5 | 0 | 4.5 |
20133047 | 17 | 0.5 | 17.5 |
20133056 | 28 | 2 | 30 |
20133058 | 37.5 | 5.5 | 43 |
20133063 | 27 | 3.5 | 30.5 |
20133066 | 21.5 | 3.5 | 25 |
20133073 | 31.5 | 2.5 | 34 |
20133077 | 34.5 | 5.5 | 40 |
20133079 | 37.5 | 8 | 45.5 |
20133088 | 11 | 0.5 | 11.5 |
20133093 | 25.5 | 3.5 | 29 |
20133099 | 21 | 3.5 | 24.5 |
20133101 | 38.5 | 7.5 | 46 |
其他问题
如果有同学认为自己的作业,评分与预期有差;或者有新的补充。
那么建议你通过博客园站内短消息的方式联系我,或者在你的作业后回帖留言(记得 @ 我)。
你也可以在这篇博文下直接回复。不过不推荐你这样做……
软件工程的意义
欢迎参看下面的文章:
http://www.cnblogs.com/ChenMeng0518/p/5460435.html