交付:导航 + 联网一起验收

交付:导航 + 联网一起验收

这是这条路线的最终作品。把前四步的代码合起来,一次验完五条: 0 到 4 的最短总长是 6,路径是 0-1-3-4——**不是**步数最少那条 0-2-4 负权图上 Dijkstra 给 5,Bell

阅读更多 →
第四步:拆掉一条边试试

第四步:拆掉一条边试试

分别拆掉 2-4(最贵,权重 9)和 0-2(最便宜,权重 1),各重新算一次最小总长,两个数拼起来输出(拆最贵的在前)。

阅读更多 →
第三步:两种 MST 互相印证

第三步:两种 MST 互相印证

写出 Kruskal 和 Prim,在同一组边上各求一次。 输出三样:Kruskal 总长 / Prim 总长 / 边集是否相同。

阅读更多 →
第二步:负权上换算法

第二步:负权上换算法

在那个有负权边的图上,用 Dijkstra 和 Bellman-Ford 各求一次 0 到 3。 输出三样:Dijkstra 的答案 / Bellman-Ford 的答案 / 是否相同。

阅读更多 →
第一步:Dijkstra 求最短路和路径

第一步:Dijkstra 求最短路和路径

最终作品第一步:写出 build、dijkstra、dij_path,输出 0 到 4 的最短总长和那条路径(路径用 - 连)。

阅读更多 →
五项一起对得上吗

五项一起对得上吗

运行下面这段程序: def build(edges): g = {} for a, b, w in edges: g.setdefault(a, []).append(

阅读更多 →
交付之前必须验什么

交付之前必须验什么

把一个最短路或 MST 的解交出去,必须先验【0】。

阅读更多 →
「导航」和「联网」怎么分

「导航」和「联网」怎么分

拿到一个实际问题,判断该用最短路还是 MST,看【0】。

阅读更多 →
⚠️ 两种算法,第二条边就分道扬镳

⚠️ 两种算法,第二条边就分道扬镳

把 Kruskal 和 Prim(从 0 出发)都写出来。 输出三样:Kruskal 选的第二条边 / Prim 加的第二条边 / 两者的边集是否相同(写成 a-b;相同输出 结果一致)。

阅读更多 →
⚠️ 换个起点,结果一样吗

⚠️ 换个起点,结果一样吗

用同一个 prim,分别从 0 号和4 号出发各长一棵树。 输出三样:从 0 的总长 / 从 4 的总长 / 两棵树的边集是否相同(相同输出 结果一致,否则 结果不一致)。

阅读更多 →