第1章学习笔记:竞赛解题闭环与复杂度预算
课程笔记从题意、数据范围和暴力基线建立可验证解题流程。
关联:章节 第1章 竞赛解题闭环与复杂度预算
第1章笔记:竞赛解题闭环与复杂度预算
目标
从题意、数据范围和暴力基线建立可验证解题流程。
七课依赖
- 读题:输入输出契约:围绕读题:输入输出契约先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 样例只说明什么:围绕样例只说明什么先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 数据范围反推预算:围绕数据范围反推预算先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 暴力基线与小数据:围绕暴力基线与小数据先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 循环不变量与正确性:围绕循环不变量与正确性先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 测试、对拍与首错定位:围绕测试、对拍与首错定位先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
- 从暴力到优化的完整复盘:围绕从暴力到优化的完整复盘先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度;边界:复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。
复杂度与适用条件表
| 算法对象 | 不变量/复杂度来源 | 使用边界 |
|---|---|---|
| 读题:输入输出契约 | 围绕读题:输入输出契约先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 样例只说明什么 | 围绕样例只说明什么先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 数据范围反推预算 | 围绕数据范围反推预算先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 暴力基线与小数据 | 围绕暴力基线与小数据先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 循环不变量与正确性 | 围绕循环不变量与正确性先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 测试、对拍与首错定位 | 围绕测试、对拍与首错定位先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
| 从暴力到优化的完整复盘 | 围绕从暴力到优化的完整复盘先写朴素算法,再提炼状态或不变量,证明优化保持答案并计算时间空间复杂度 | 复杂度必须说明输入规模、最坏/期望口径和常数边界。 本课必须再检查边界输入、整数溢出、下标和不可行状态。 |
复盘
每题保存暴力、优化、证明、四组边界测试和首个WA输入;一周后换数据重做。