怎么判断图里有负环(C++)

用 Bellman-Ford 判断负环的办法是【0】。

开始练习 →

在反例上换成 Bellman-Ford

同一张有负权边的图,这次用 Bellman-Ford。运行下面这段程序: #include <algorithm> #include <iostream> #include <queue> #includ

开始练习 →

两张图各有没有负环

一张是上一节那个有负权边的图,一张是 0→1:1、1→2:-1、2→1:-1(1 和 2 之间绕一圈是 -2)。运行下面这段程序: #include <algorithm> #include <iostream> #

开始练习 →

写一个 Bellman-Ford

补全 bellman:把所有边松弛 n-1 轮。在那个有负权边的图上跑,输出整张距离表。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

加上负环检测

补全 has_neg_cycle:先松弛 n-1 轮,再多试一轮——还能松弛成功就说明有负环。验两张图,把两个结果拼起来输出(有负权边那张在前)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

一张一致一张不一致

Dijkstra 已经写好。补全 bellman,在两张结构相同的图上各跑一次,比较两种算法求出的 0 到 3 的距离:2→1 那条边是 +3(全是非负权)的一张,和 -3(有负权边)的一张。两个结论(结果一致 / 结果不一致)用 / 拼起

开始练习 →

最小生成树是什么

第 1 步:五个点、五条边 第 2 步:挑四条边,全都连上 第 3 步:1 + 1 + 2 + 3,最贵的没用 0 1 3 2 4 2 1 3 9 1 一张连通图的最小生成树是【0】。

开始练习 →

生成树有多少条边

n 个顶点的生成树一定有【0】边。

开始练习 →

MST 和最短路差在哪(C++)

最小生成树和最短路的区别是【0】。

开始练习 →

五个点连起来最少多少

主连通块有五个点、五条边:0-1:2 0-2:1 1-3:3 2-4:9 3-4:1。运行下面这段程序,看最小总长和用了几条边: #include <algorithm> #include <iostream> #i

开始练习 →