Skip to content

Commit

Permalink
fix(shortest-path.md): fix format
Browse files Browse the repository at this point in the history
  • Loading branch information
lingkerio authored Dec 11, 2024
1 parent 359ceb7 commit 03c4a14
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/graph/shortest-path.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ author: du33169, lingkerio, Taoran-01
=== "C++"
```cpp
for (k = 1; k <= n; k++) {
for (x = 1; x <= n; x++) { 
for (x = 1; x <= n; x++) {
for (y = 1; y <= n; y++) {
f[k][x][y] = min(f[k - 1][x][y], f[k - 1][x][k] + f[k - 1][k][y]); 
}
Expand All @@ -71,9 +71,9 @@ author: du33169, lingkerio, Taoran-01
因为第一维对结果无影响,我们可以发现数组的第一维是可以省略的,于是可以直接改成 `f[x][y] = min(f[x][y], f[x][k]+f[k][y])`

???+ note "证明第一维对结果无影响"
对于给定的`k`,当更新`f[k][x][y]`时,涉及的元素总是来自`f[k-1]`数组的第`k`行和第`k`列。然后我们可以发现,对于给定的`k`,当更新`f[k][k][y]``f[k][x][k]`,总是不会发生数值更新,因为按照公式`f[k][k][y] = min(f[k-1][k][y], f[k-1][k][k]+f[k-1][k][y])`,`f[k-1][k][k]`为0,因此这个值总是`f[k-1][k][y]`对于f[k][x][k]的证明类似。
对于给定的 `k`,当更新 `f[k][x][y]` 时,涉及的元素总是来自 `f[k-1]` 数组的第 `k` 行和第 `k` 列。然后我们可以发现,对于给定的 `k`,当更新 `f[k][k][y]``f[k][x][k]`,总是不会发生数值更新,因为按照公式 `f[k][k][y] = min(f[k-1][k][y], f[k-1][k][k]+f[k-1][k][y])`,`f[k-1][k][k]` 为 0,因此这个值总是 `f[k-1][k][y]`对于 f\[k]\[x]\[k] 的证明类似。

因此,如果省略第一维,在给定的`k`下,每个元素的更新中使用到的元素都没有在这次迭代中更新,因此第一维的省略并不会影响结果。
因此,如果省略第一维,在给定的 `k` 下,每个元素的更新中使用到的元素都没有在这次迭代中更新,因此第一维的省略并不会影响结果。

=== "C++"
```cpp
Expand Down

0 comments on commit 03c4a14

Please sign in to comment.