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

欧拉回路

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

在这里插入图片描述

如图就是一个欧拉回路

欧拉回路判定

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

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

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

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

混合图的欧拉回路

过程:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值