📅  最后修改于: 2023-12-03 14:58:20.069000             🧑  作者: Mango
本章含有GATE 2018年计算机科学考试的一道题目。本题目主要考察的是图与图的遍历,并且需要注意时间复杂度。
给定一个带权重的无向连通图 $G = (V, E)$, 其中 $V$ 是顶点集合,$E$ 是边集合,每条边的权重都是正整数。$G$ 中一些边已被染成红色。一颗生成树 $T$ 是这样一棵树,它覆盖所有红边(每条红边都在 $T$ 中),并且和 $G$ 中的另外一些边一起构成 $T$ 的边集。
如果 $T$ 还有一个性质为所有顶点都是偶度的,则它被称为一个完美匹配树。考虑所有可能的完美匹配树中,选择深度最大的一棵树,写一个算法找到这棵树的深度。
输入的第一行包含整数 $n$,表示图 $G$ 中的顶点数。接下来是一个 $n * n$ 的矩阵,$M_{i,j}$ 表示顶点 $i$ 到顶点 $j$ 之间的距离,若顶点 $i$ 和 $j$间有边相连,则 $M_{i,j}=M_{j,i}$ 为正整数,否则为 -1。接下来一行包含 n 个整数,从顶点 $1$ 到顶点 $n$ 的偶度。
输出一个整数,表示完美匹配树的深度。
4
0 1 -1 2
1 0 3 -1
-1 3 0 4
2 -1 4 0
2 6 2 4
4
解释如下:
选取深度最大的完美匹配树:
3
0 2 3
2 0 1
3 1 0
2 2 2
解释如下:
没有完美匹配树。