带权最短路算法实现
约 45 分钟
本课针对 408 全真卷中的 带权最短路算法实现。目标是既能在两分单选中快速排除,也能在十分综合题中保留完整过程。
考纲模型
Dijkstra 对非负边权图维护已确定集合;每次取当前最小未确定距离并松弛出边。
先定义变量、单位、初始状态与不变量。遇到结构题画字段,遇到时序题画时间线,遇到算法题写输入输出和终止条件。结论必须由题设推出,不能依赖背过的某一道题。
综合推演
dist[v] 表示当前已知上界;顶点出优先队列时若距离已过期要跳过。邻接表加堆的复杂度约为 O((V+E)logV)。
书写顺序固定为:规则或公式、参数代入、中间状态、最终结论。计算完成后做数量级与边界检查;代码实现还要验证空图、不可达、重复访问和最小规模。
高频失分点
出现负权边时 Dijkstra 的贪心确定性失效;不可达顶点不能输出伪造的大整数。
全真训练中,选择题最多用反例与量词检查;综合题即使最后数值错误,也要保留可评分的中间式、状态表和复杂度。代码题必须真运行,不接受只覆盖样例的硬编码。
课后验收
完成本课单选、多选和综合应用题。单选解释三个错误项,多选不得漏选;计算保留单位,文本按要点作答,代码必须通过四个独立测试。次日遮住答案重做,并记录耗时。
Practice
本课练习
先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。