#4429. [GESP202603 八级 C++] 第 11 题

[GESP202603 八级 C++] 第 11 题

下列代码试图实现Floyd算法求所有点对之间的最短路径,横线处应填入( )。

void floyd(int n, int dist[][MAXN]) {
    for (int k = 0; k < n; k++)
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                if (__________) // 在此处填入选项
                    dist[i][j] = dist[i][k] + dist[k][j];
}

{{ select(1) }}

  • dist[i][k] + dist[k][j] < dist[i][j]
  • dist[i][k] != INF && dist[k][j] != INF
  • dist[i][k] != INF && dist[k][j] != INF && dist[i][k] + dist[k][j] < dist[i][j]
  • dist[i][j] == INF