用 Python 编写程序,找出最少需要授课的人数

pythonserver side programmingprogramming更新于 2025/12/9 16:44:17

假设我们有一个数字 n、一个名为"languages"的数组和一个名为"friendships"的数组,因此有 n 种语言,编号从 1 到 n,languages[i] 表示第 i 个用户知道的一组语言,friendships[i] 包含一对 [ui, vi],表示用户 ui 和 vi 之间的友谊。我们可以选择一种语言并将其教给一些用户,以便所有朋友都可以相互交流。我们必须找出教学所需的最少用户数量。 (我们必须记住的一件事是,友谊不是传递性的,所以如果 x 是 y 的朋友,而 y 是 z 的朋友,这并不意味着 x 是 z 的朋友)。

因此,如果输入为 n = 3 languages = [[2],[1,3],[1,2],[3]] friendships = [[1,4],[1,2],[3,4],[2,3]],则输出将为 2,因为我们需要将语言 3 训练给用户 1 和 3,因为有两个用户需要教,所以输出为 2。

为了解决这个问题,我们将遵循以下步骤 −