跳到正文

无权图最短路

40 分钟

本节进入 408 强化阶段的 无权图最短路。要求从定义出发完成真题级推演,并把过程写到可以复查。

状态模型与不变量

BFS 出队顶点 u 时,dist[u] 已是源点到 u 的最少边数;首次发现 v 时设置 dist[v]=dist[u]+1。

开始计算前先列出输入、单位、下标与初始状态。算法题必须说明数据结构保存什么;硬件、操作系统和网络题必须画出字段或时间线。任何一步状态更新都要能指出依据。

例题推演

从 0 出发,边 0-1、0-2、2-3,则距离为 0,1,1,2。

正式作答时按“公式或规则—代入—中间状态—结论”书写。若有多次访问、调度或转发,用表格逐行记录,不能靠脑中跳步。完成后用极小输入、边界输入和一个反例复核。

易错边界

若入队时不标记,顶点可能被重复入队;若用栈则不再保证无权最短路。

选择题要逐项检查前提与量词;计算题要检查字节/比特、周期/秒、地址/块号等单位;算法题还要说明最坏复杂度、额外空间和终止性。

随课训练要求

  1. 单选题必须解释另外三项为何错误。
  2. 多选题漏选、多选均不得分。
  3. 计算题保留推导;代码题必须通过四个独立用例,禁止样例硬编码。
  4. 将错因标为知识、建模、状态更新、计算或审题,并在次日重做。

能得到一个数不等于掌握;能重建状态、解释规则并迁移到变式才算完成。

Practice

本课练习

3

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

1强化单选:无权图最短路 2

下列关于本节模型的说法,正确的是哪一项?

登录 后答题可以领小红花
2强化多选:无权图最短路 2

选择所有正确说法。漏选或多选均不得分。

多选题:必须选全正确项,漏选或多选均不得分。

登录 后答题可以领小红花
3强化应用:无权图最短路 3

输入 n,m,s,随后 m 条无向边。按顶点 0..n-1 输出源点 s 到各点的最少边数,不可达输出 -1。使用 Python 3。

登录 后答题可以领小红花