📜  门| GATE-CS-2003 |第70章

📅  最后修改于: 2021-06-28 21:20:08             🧑  作者: Mango

令G(V,E)是具有n个顶点的有向图。 G中从v i到v j的路径是顶点序列(v i ,v i + 1 ,……。,v j ),使得(vk,v k + 1 )∈对于i到j到i中的所有k,E均为1。简单路径是没有一个顶点出现一次以上的路径。
设A为初始化如下的nxn数组

GATECS2003Q70

考虑以下算法。

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.

这个问题的测验