Prim 按什么顺序加边

看 Prim 从 0 出发时,四条边是按什么顺序加进来的: #include <algorithm> #include <iostream> #include <queue> #include <s

开始练习 →

写一个 Prim

补全 prim:用小根堆存「从树里连出去的边」,每次弹最短的一条,另一端还没进树才要。输出最小总长。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

输出 Prim 的加边顺序

补全 edges_str:把一组边按顺序写成 a-b,边之间用 / 隔开。输出 Prim 从 0 出发的加边顺序。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

换个起点结果一样吗

用同一个 prim,分别从 0 号和 4 号出发各长一棵树。补全 same_set,输出三样:从 0 的总长 / 从 4 的总长 / 两棵树的边集是否相同(相同输出 结果一致,否则 结果不一致)。 (本题用 g++ -std=c++17 -

开始练习 →

第二条边就分道扬镳

Prim 和比较边集的函数都写好了,补全 kruskal 的选边循环。输出三样:Kruskal 选的第二条边 / Prim(从 0 出发)加的第二条边 / 两者的边集是否相同(写成 a-b;相同输出 结果一致)。 (本题用 g++ -std

开始练习 →

导航和联网怎么分

第 1 步:从 0 到 4 有两条路 第 2 步:两段那条:1 + 9 第 3 步:三段那条:2 + 3 + 1 第 4 步:段数多,反而更近 0 1 3 2 4 2 1 3 9 1 拿到一个实际问题,判断该用最短路还是 MST,看【0】。

开始练习 →

交付之前必须验什么(C++)

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

开始练习 →

五项一起对得上吗

运行下面这段程序: #include <algorithm> #include <iostream> #include <queue> #include <set> #include <

开始练习 →

第一步最短路和路径

最终作品第一步:补全 dijkstra 和 back_track,输出 0 到 4 的最短总长和那条路径(路径用 - 连)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步负权上换算法

在那个有负权边的图上,用 Dijkstra 和 Bellman-Ford 各求一次 0 到 3。补全 bellman,输出三样:Dijkstra 的答案 / Bellman-Ford 的答案 / 是否相同。 (本题用 g++ -std=c+

开始练习 →