欧拉回路、混合图的欧拉回路

欧拉回路

从一个点开始把图中的边恰好经过一次,再回到出发点,这样的路径就是欧拉回路。

在这里插入图片描述

如图就是一个欧拉回路

欧拉回路判定

不过怎么样的图中才存在欧拉回路呢?

欧拉回路分有向图和无向图两种:

  1. 有向图: 图中所有点的入度等于出度
  2. 无向图: 图中所有点的度数都为偶数

这还是很好理解的,不过你可能要问,怎么知道一个混合图中有没有欧拉回路呢?

混合图的欧拉回路

过程:

  1. 先将无向边随意定向
  2. 判断每个点的入度和出度是不是同奇偶,不同则无解
  3. 用一个超级原点向出度小于入度的点连一条容量为 \({|入度-出度| \over 2}\) 的边
    用一个超级汇点向出度大于入度的点连一条容量为 \({|入度-出度| \over 2}\) 的边
  4. 将原图无向边的另一个方向边连到图中,容量为 1
  5. 跑最大流,判断与 S 相连的边是否满流,满流则有解

PS:其实也十分好理解,其实就是将原来无向边的方向进行调整,使得每个点的入度等于出度。每个点需要调整 \({|入度-出度| \over 2}\) 次,所以边的容量为 \({|入度-出度| \over 2}\)
当我们流过一条边的时候,两条边容量各减一,就相当于把边调整的过程。

posted @ 2018-10-03 15:47  ezoiLZH  阅读(310)  评论(0编辑  收藏  举报