📌  相关文章
📜  教资会网络 | UGC NET CS 2015 年 6 月 – III |问题 26(1)

📅  最后修改于: 2023-12-03 15:10:14.897000             🧑  作者: Mango

教资会网络 | UGC NET CS 2015 年 6 月 – III | 问题 26
题目描述

在一个有向图中,一个节点的外向链是指可从该节点到达的其他节点的集合,同理,该节点的入向链是指可到达该节点的其他节点的集合。给定一个有向图 $G=(V,E)$,其中每个节点恰有 $k$ 条入向链和 $k$ 条外向链。证明:$G$ 中所有节点可以被划分成 $k$ 个集合,每个集合包含 $v/k$ 个节点,使得对于任意节点 $v \in V$,它与其所在集合中的任意一个节点之间都存在一条长度为 $2$ 的路径。

解题思路

题目要求将有向图 $G$ 中所有节点划分成 $k$ 个集合,每个集合包含 $v/k$ 个节点。因此我们需要证明可以实现此种划分,并且此种划分满足对于任意节点 $v \in V$,它与其所在集合中的任意一个节点之间都存在一条长度为 $2$ 的路径。

假设 $G$ 中存在 $n$ 个节点,可以先将节点 $V$ 按照其出度(即外向链的数量)进行归类,得到 $k$ 个集合,将每个集合中的节点进行编号,编号方式如下图所示:

节点编号

通过上图可以发现,每个节点只有可能与它所在集合中不同的集合中的节点形成长度为 $2$ 的路径,例如节点 $v$ 可以通过其所在集合中的节点 $1$ 到达其它集合中的节点 $8$。因此,我们只需要将节点按照上述方式划分成 $k$ 个集合,即可满足要求。

证明过程
  1. 首先根据 $k$ 的定义,可以得到:

    $$ \sum _{v\in V} InDegree(v)=\sum _{v\in V} OutDegree(v)=nk $$

  2. 对于任意节点 $v \in V$,它的入度和出度必然满足 $1 \leq InDegree(v), OutDegree(v) \leq k$,因此有:

    $$ k \leq \frac{n}{2} $$

  3. 由于每个节点的出度和入度都为 $k$,因此可以得到:

    $$ |E| = \sum _{v\in V} OutDegree(v) = \sum _{v\in V} InDegree(v) = nk $$

  4. 根据 1 和 3 可知,对于任意节点 $v \in V$,它所能到达的节点数目必然为 $InDegree(v)=\frac{nk}{n} = k$,因此可以将所有节点按照出度进行划分,划分为 $k$ 个集合,每个集合中包含 $\frac{n}{k}$ 个节点。

  5. 考虑任意节点 $v$,由于其出度为 $k$,故 $v$ 可以到达其所在集合中除自身外的任意 $k-1$ 个节点,也可以到达其它 $k-1$ 个集合中的所有节点,故 $v$ 可以与其所在集合中的任意一个节点之间(除自身外)都存在一条长度为 $1$ 的路径,与其它 $k-1$ 个集合中的所有节点之间都存在一条长度为 $2$ 的路径,因此 $G$ 中所有节点可以被划分成 $k$ 个集合,每个集合包含 $v/k$ 个节点,且满足对于任意节点 $v \in V$,它与其所在集合中的任意一个节点之间都存在一条长度为 $2$ 的路径。证毕。

代码实现

无需代码实现。