文章
159
粉丝
0
获赞
0
访问
9.5k

评分及理由
(1)得分及理由(满分4分)
得分:4分
理由:学生的基本设计思想与标准答案一致,即通过遍历邻接矩阵统计每个顶点的度,然后统计度为奇数的顶点个数,最后判断该个数是否为0或2。思路正确,表述清晰。
(2)得分及理由(满分9分)
得分:6分
理由:算法主体框架正确,但存在一处逻辑错误。在计算顶点的度时,学生使用了 degree = degree + G.Edge[i][j] + G.Edge[j][i]。对于无向图的邻接矩阵,它是对称的,G.Edge[i][j] 和 G.Edge[j][i] 表示的是同一条边,因此这样计算会将每条边重复计算两次,导致度数的统计结果翻倍。正确的做法应该是只累加 G.Edge[i][j] 或 G.Edge[j][i] 其中之一,通常按行(或列)累加即可,即 degree += G.Edge[i][j]。此逻辑错误会导致判断结果可能出错,因此需要扣分。考虑到算法整体结构、变量初始化、循环控制、条件判断等其他部分均正确,且注释清晰,扣除3分。
注:学生作答中第1次识别结果里有一行 degree += degree + G.Edge[i][j] + G.Edge[j][i]; 存在明显的书写错误(degree += degree ...),但第2次识别结果已修正为 degree = degree + G.Edge[i][j] + G.Edge[j][i];。根据“禁止扣分”原则,对于识别错误或误写,若不影响核心逻辑判断则不扣分。但此处无论是哪种写法,其核心逻辑“将邻接矩阵的对称两项相加”都是错误的,因此不属于单纯的字符误写,属于逻辑错误,需要扣分。
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了算法的时间复杂度为 O(n²),空间复杂度为 O(1),与标准答案一致。
题目总分:4+6+2=12分
登录后发布评论
暂无评论,来抢沙发