无权图最短路
约 40 分钟
本节进入 408 强化阶段的 无权图最短路。要求从定义出发完成真题级推演,并把过程写到可以复查。
状态模型与不变量
BFS 出队顶点 u 时,dist[u] 已是源点到 u 的最少边数;首次发现 v 时设置 dist[v]=dist[u]+1。
开始计算前先列出输入、单位、下标与初始状态。算法题必须说明数据结构保存什么;硬件、操作系统和网络题必须画出字段或时间线。任何一步状态更新都要能指出依据。
例题推演
从 0 出发,边 0-1、0-2、2-3,则距离为 0,1,1,2。
正式作答时按“公式或规则—代入—中间状态—结论”书写。若有多次访问、调度或转发,用表格逐行记录,不能靠脑中跳步。完成后用极小输入、边界输入和一个反例复核。
易错边界
若入队时不标记,顶点可能被重复入队;若用栈则不再保证无权最短路。
选择题要逐项检查前提与量词;计算题要检查字节/比特、周期/秒、地址/块号等单位;算法题还要说明最坏复杂度、额外空间和终止性。
随课训练要求
- 单选题必须解释另外三项为何错误。
- 多选题漏选、多选均不得分。
- 计算题保留推导;代码题必须通过四个独立用例,禁止样例硬编码。
- 将错因标为知识、建模、状态更新、计算或审题,并在次日重做。
能得到一个数不等于掌握;能重建状态、解释规则并迁移到变式才算完成。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。