本表按“读题 -> 建模 -> 编码 -> 调试 -> 提交 -> 复盘”组织,可直接用于赛前提醒、赛中检查和赛后总结。
一、读题阶段
- 圈出输入、输出、约束、目标四类信息。
- 识别题目属于哪种题型。
- 标出所有关键词:最短、最优、排序、分级、去重、模拟、窗口、传播、容量。
- 确认单位、比例、页码、场景规则和特殊条件。
- 把样例至少手推 1 次。
二、建模阶段
- 主要数据对象是什么。
- 核心状态变量是什么。
- 需要用数组、字典、图、队列还是 DP。
- 排序规则和 tie-break 是否写清楚。
- 如果是优化题,目标函数和约束是否写清楚。
三、编码阶段
- 先写可运行主版本,不要一开始就做过度优化。
- 读入、处理、输出三部分是否分开。
- 是否把复杂逻辑拆成函数或步骤块。
- 中间变量名称是否能说明含义。
- 关键规则是否有注释或说明。
四、调试阶段
- 是否覆盖正常样例。
- 是否覆盖最小规模样例。
- 是否覆盖极端值样例。
- 是否覆盖异常或脏数据样例。
- 是否检查了空输入、单元素、重复记录、边界时间点。
五、提交前检查
- 输出格式是否逐字符一致。
- 是否多输出空格、换行或提示文字。
- 时间复杂度是否能承受数据规模。
- 是否存在整数溢出或浮点精度风险。
- 多组数据时是否正确重置状态。
六、赛后复盘
- 这道题属于什么题型。
- 你最开始的判断是否正确。
- 最终算法的核心步骤是什么。
- 本题最容易错的两处在哪里。
- 如果重做一次,会如何改进程序结构。
七、教师与带训人员额外检查项
- 学生是否真的理解了题型,而不是只会照抄模板。
- 学生能否解释每个状态变量的含义。
- 学生能否说清楚排序规则、边界处理和复杂度。
- 学生是否保留了运行证据和样例推演记录。
- 讲评时是否把“算法错误”和“实现错误”区分开。