📅  最后修改于: 2023-12-03 15:10:14.897000             🧑  作者: Mango
在一个有向图中,一个节点的外向链是指可从该节点到达的其他节点的集合,同理,该节点的入向链是指可到达该节点的其他节点的集合。给定一个有向图 $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$ 个集合,即可满足要求。
首先根据 $k$ 的定义,可以得到:
$$ \sum _{v\in V} InDegree(v)=\sum _{v\in V} OutDegree(v)=nk $$
对于任意节点 $v \in V$,它的入度和出度必然满足 $1 \leq InDegree(v), OutDegree(v) \leq k$,因此有:
$$ k \leq \frac{n}{2} $$
由于每个节点的出度和入度都为 $k$,因此可以得到:
$$ |E| = \sum _{v\in V} OutDegree(v) = \sum _{v\in V} InDegree(v) = nk $$
根据 1 和 3 可知,对于任意节点 $v \in V$,它所能到达的节点数目必然为 $InDegree(v)=\frac{nk}{n} = k$,因此可以将所有节点按照出度进行划分,划分为 $k$ 个集合,每个集合中包含 $\frac{n}{k}$ 个节点。
考虑任意节点 $v$,由于其出度为 $k$,故 $v$ 可以到达其所在集合中除自身外的任意 $k-1$ 个节点,也可以到达其它 $k-1$ 个集合中的所有节点,故 $v$ 可以与其所在集合中的任意一个节点之间(除自身外)都存在一条长度为 $1$ 的路径,与其它 $k-1$ 个集合中的所有节点之间都存在一条长度为 $2$ 的路径,因此 $G$ 中所有节点可以被划分成 $k$ 个集合,每个集合包含 $v/k$ 个节点,且满足对于任意节点 $v \in V$,它与其所在集合中的任意一个节点之间都存在一条长度为 $2$ 的路径。证毕。
无需代码实现。