Skip to content

feat(ch07): 完善图算法代码题、测试点与教学规范 - #190

Merged
AzenAnn merged 2 commits into
mainfrom
codex/ch07-program-exercises
Sep 14, 2026
Merged

AzenAnn merged 2 commits into
mainfrom
codex/ch07-program-exercises

Conversation

@AzenAnn

@AzenAnn AzenAnn commented Sep 14, 2026

Copy link
Copy Markdown
Owner

这次更新解决什么

按维护者提供的 Ch7 三十题清单补全图算法代码练习,使每题都有可独立完成的题面、可编译的学生起始代码、参考实现和可复现的评分测试。新增 20 题;保留已有题目的永久 ID,并将清单外两题作为补充,全章共 32 题。

改动内容

  • 新增 07E13–07E32,覆盖 DFS 边分类、欧拉图、拓扑排序与关键路径、MST、最短路径、A*、匹配和网络流;每题提供 C++17 starter/solution、标准 manifest、Makefile 和 20 个测试点。
  • 新增 400 个测试点及独立答案核验脚本,为每题设计一个可被测试检出的典型错误实现;明确拓扑序、欧拉路径、匹配方案等输出规则。
  • 新增 Ch7 学习清单,维护 30 题顺序、题源适配和现有文章的互链,补充 Trellis 图算法题目规范及静态、浏览器回归测试。
  • 修复旧 DFS 时间戳题在 Windows 默认栈下的深链溢出:超过递归深度阈值后使用等价显式栈,保留原有测试与时间戳语义。

验证记录

  • pnpm test:内容、类型、lint、工具与文档测试、Ch7 校验、自动发现、构建和产物检查通过;一个既有符号链接测试因 Windows 环境限制跳过。
  • 全部 32 个 Ch7 Lab 的官方 lab:verify 通过,共 640 个测试点;参考实现满分、starter 可编译且非满分、期望输出稳定。
  • python scripts/check-ch07-exercises.py --write --solutions --mutations:20 题独立答案与参考实现一致,20 个典型错误均被检出;之后以只读模式再次核对全部期望。
  • Windows 原生 Clang / C++17 完整核验;MSVC 19.51 抽查 07E01、07E28、07E32 全通过。均为 Program 自动评分,无人工分项;本次无 CMake 项目。
  • 根路径 Ch7 浏览器用例通过;/DSA-Mastery/ 构建及 check:site 通过,test:pages 完整 62/62 通过,含 390px 窄屏检查。
  • 本地浏览器打开 Ch7 清单并确认页面内容加载;07E26 的 make run CASE=001-sample 得到预期 starter WA 和重试提示。
  • 提交前再次运行 node --test tests/ch07-exercises.test.mjsgit -c core.whitespace=-blank-at-eof diff --cached --check,均通过。07E21 的两个无活动用例按题面保留第三行空行;提交不含缓存、二进制和构建日志。
  • 未另行导出并在仓库外验证 20 份 student pack;本次未修改打包机制。

详细记录见 .trellis/tasks/09-14-ch07-program-exercises/review.md。跨系统验证以本 PR 的 CI 结果为准。

内容完成标准

  • 学习目标、范围、边界和 draft 状态明确;Program reference=100、starter<100。
  • 正文、Lab、代码与测试术语一致;正文无硬编码部署前缀,链接指向现有文件。
  • 来源及课程改编差异已记录;题面、实现和数据由本课程独立编写。
  • 定义、复杂度、引用和知识正确性仍需维护者人工复核;内容继续保持 draft。

AI 使用与人工复核

AI 用于题目适配、代码与测试实现、独立答案核验、错误变体测试和规范维护。自动化检查已完成,不将其等同于人工知识审阅。

Reviewer 重点关注

  • 欧拉路线与匹配方案的确定性规则、关键路径的多源多汇语义、费用流的输入约束及负费用处理。
  • 原清单的 POJ 1392 与七桥主题不符,已按课程原创题处理;LeetCode 1135、AcWing 的访问限制和 POJ 3259 的核验限制均在清单中说明。
  • 规划中的新 7.2 / 7.6 理论文章尚未上传,本次保留现有文章入口和明确映射。

@AzenAnn
AzenAnn merged commit 918c80f into main Sep 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant