File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 5454
5555## 思路
5656
57- 本题是 [ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) 延伸题目。
57+ 本题是 [ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) 延伸题目。
5858
5959本题是要我们判断 负权回路,也就是图中出现环且环上的边总权值为负数。
6060
@@ -64,15 +64,15 @@ circle
6464
6565接下来我们来看 如何使用 bellman_ford 算法来判断 负权回路。
6666
67- 在 [ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) 中 我们讲了 bellman_ford 算法的核心就是一句话:对 所有边 进行 n-1 次松弛。 同时文中的 【拓展】部分, 我们也讲了 松弛n次以上 会怎么样?
67+ 在 [ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) 中 我们讲了 bellman_ford 算法的核心就是一句话:对 所有边 进行 n-1 次松弛。 同时文中的 【拓展】部分, 我们也讲了 松弛n次以上 会怎么样?
6868
6969在没有负权回路的图中,松弛 n 次以上 ,结果不会有变化。
7070
7171但本题有 负权回路,如果松弛 n 次,结果就会有变化了,因为 有负权回路 就是可以无限最短路径(一直绕圈,就可以一直得到无限小的最短距离)。
7272
7373那么每松弛一次,都会更新最短路径,所以结果会一直有变化。
7474
75- (如果对于 bellman_ford 不了解的录友,建议详细看这里:[ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) )
75+ (如果对于 bellman_ford 不了解的录友,建议详细看这里:[ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) )
7676
7777以上为理论分析,接下来我们再画图举例。
7878
@@ -94,13 +94,13 @@ circle
9494
9595如果在负权回路多绕两圈,三圈,无穷圈,那么我们的总成本就会无限小, 如果要求最小成本的话,你会发现本题就无解了。
9696
97- 在 bellman_ford 算法中,松弛 n-1 次所有的边 就可以求得 起点到任何节点的最短路径,松弛 n 次以上,minDist数组(记录起到到其他节点的最短距离)中的结果也不会有改变 (如果对 bellman_ford 算法 不了解,也不知道 minDist 是什么,建议详看上篇讲解[ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) )
97+ 在 bellman_ford 算法中,松弛 n-1 次所有的边 就可以求得 起点到任何节点的最短路径,松弛 n 次以上,minDist数组(记录起到到其他节点的最短距离)中的结果也不会有改变 (如果对 bellman_ford 算法 不了解,也不知道 minDist 是什么,建议详看上篇讲解[ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) )
9898
9999而本题有负权回路的情况下,一直都会有更短的最短路,所以 松弛 第n次,minDist数组 也会发生改变。
100100
101- 那么解决本题的 核心思路,就是在 [ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) 的基础上,再多松弛一次,看minDist数组 是否发生变化。
101+ 那么解决本题的 核心思路,就是在 [ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) 的基础上,再多松弛一次,看minDist数组 是否发生变化。
102102
103- 代码和 [ kama94.城市间货物运输I] ( ./kama94 .城市间货物运输I.md ) 基本是一样的,如下:(关键地方已注释)
103+ 代码和 [ kama94.城市间货物运输I] ( ./0094 .城市间货物运输I.md ) 基本是一样的,如下:(关键地方已注释)
104104
105105``` CPP
106106#include < iostream>
You can’t perform that action at this time.
0 commit comments