令 G (V, E) 是一个有 n 个顶点的有向图。 G 中从 v i到 v j 的路径是顶点序列 (v i , v i+1 , ……., v j ) 使得 (vk, v k+1 ) ∈ E 表示 i 到 j – 1 中的所有 k。简单路径是没有顶点出现多次的路径。
设 A 是一个 nxn 数组,初始化如下
考虑以下算法。
for i = 1 to n
for j = 1 to n
for k = 1 to n
A [j , k] = max (A[j, k] (A[j, i] + A [i, k]);
对于上述算法终止后的所有 j 和 k,以下哪项陈述一定是正确的?
(A) A[j, k] ≤ n
(B)如果 A[j, k] ≥ n – 1,则 G 有一个哈密顿循环
(C)如果存在从 j 到 k 的路径,则 A[j, k] 包含从 j 到 k 的最长路径镜头
(D)如果存在一条从 j 到 k 的路径,则从 j 到 k 的每条简单路径都包含最多的 A[j, k] 条边答案: (D)
解释:
In the original input matrix, A[j , k] is 1 if there
is an edge from j to k, else 0.
Below expression is important to note:
A[j , k] = max(A[j, k] (A[j, i] + A [i, k]);
This expression puts the count of maximum edges on a path from
j to k. In this expression, we consider every vertex k that can
become an intermediate vertex and can give longer path.
这个问题的测验