【作业说明】 1. 作业将分八次给出,内容分别为: 基础练习 线性表 栈与队列 串及其匹配 树 图 高级数据结构 排序 2. 每次作业过期后两周内公布分数,并有一周申诉期。 3. 第一次作业不算分,因此可以不交,习题课上公布参考解答。这次作业的主要目的是为熟悉作业形式,尽早发现自己的困难。 4. 其余七次作业分别占作业总成绩的10%, 10%, 10%, 20%, 20%, 20%, 10% 5. 每次作业将有10道题目可供选择,每题分值不等。该次作业的总成绩等于学生所提交的各题得分之和。如果超过满分,按满分计算。 6. 无效提交记该题得0分。 7. 每道题目均有一个编号和字母代号,有明确的要求,有输入、输出文件格式,样例输入输出。在复杂的题目中还会有样例解释。 8. 所有题目均从键盘读取输入,输出到屏幕 9. 题目的每个输入变量都有范围约束,参考程序保证对输入范围之内的所有数据都能在规定时限的1/2内(含)给出正确的答案 10. 如非特别指出,输入和输出的整数、实数和字符串均用恰好一个空格隔开,行首行末均没有多余空格,每行末均有一个回车,包括最后一行; 输出的实数保留小数点后3位小数,而不用科学记数法。程序输出必须与标准输出在忽略多余white space(由空格、回车和TAB)后完全一致, 比如标准输出为0.000,则程序输出-0.000将不得分。虽然不严格的输出有时也能通过黑盒测试,但可能在代码风格方面扣分,因此请尽量让你的输出和标准输出完全一致。 11. 学生应对算法的时间复杂度予以足够的重视,一个正确但效率低下的程序无法获得高分,对于分值较大的题目尤其如此。 【如何提交】 每位学生对每次作业的所有题目的解答应放在一个压缩包中,命名方式为:学号_hw作业序号.rar/zip 比如:2005012345_hw1.rar就是学号为2005012345的同学提交的第一次作业,该压缩包里应包含本次作业他所选的所有题目的解答。 【压缩包的内容】 压缩包中每道题目的解答应放在单独的文件夹中,名称为该题的字母代号。每道题目的文件夹中包含说明文件readme.txt,主程序main.cpp 以及至少一个头文件*.h和相应的*.cpp文件,以及工程文件。注意,不得使用除标准C库外的其他函数库(包括STL,boost等),因此压缩包中不 允许有扩展名为lib, dll的文件。 下面是一个正确的目录结构 2005012345_hw1.rar add/ main.cpp add.h add.cpp add.dsp add.dsw sub/ main.cpp sub.h sub.cpp sub.dsp sub.dsw 【评分标准】 1. 每题得分四舍五入到小数点一位 2. 每题的得分分为两部分:黑盒测试和代码,各占50%的分数。特殊奖励分数不算在内(见后) 3. 每题的黑盒测试都采用10组数据。每组数据包括输入和标准输出两部分,称为一个数据点。 4. 每题均有时间限制,对每个测试点的运行时间不得超过该时限,否则算做该测试点得0分。因此完成题目时请注意算法的时间效率。 6. 代码分数将根据注释、代码风格和算法确定。某方面优秀的程序有可能获得不超过本题总分数(含)5%的奖励分数。 该分数不作为本题正常得分的一部分,直接累加到总成绩中。 7. 如果题目中限制了可用算法,则如果用非指定算法完成作业将视为无效提交。 【学术诚信】 允许就作业进行讨论,但只限于宏观思路,不能涉及具体实现方法、算法流程或代码;只限于口头,不能有任何形式的记录。 在各题的readme文件中,须注明共同讨论者,或者其它思路来源(如参考书籍、网站等)。 严禁抄袭,违者无论情节轻重,抄袭双方除按照学校相关规定处理外,相关习题成绩按完成质量为-1计算。 选修本课者有义务对自己的作业设计资料及代码保密,随意公开者也按抄袭处。