Loading

欧拉路总结

被迫营业。

其实这篇东西并没有多大意义,只是写了一些提高组以下能用到的东西,因为这个是营业要求……

等我有时间了会去研究一下2018的国家集训队论文《欧拉图相关的生成与计数问题探究》再来补充。

一些定义

  • 欧拉路径:经过图 \(\mathcal{G}\) 中所有边恰好一次的路径。(可以当做一笔画)。

  • 欧拉回路:一条路径是回路且是欧拉路径。(起终点相同)

  • 欧拉图:存在欧拉回路的图。

  • 半欧拉图:存在 欧拉路径 但是 不存在 欧拉回路 的图。

判定

以下图默认联通

  • 无向欧拉图:一张无向图是欧拉图 当且仅当 这张图中不存在度数为奇数的点。

简要证明:一条回路是由若干个环并起来的,那么点度显然是偶数。

  • 无向半欧拉图:一张无向图是半欧拉图 当且仅当 这张图中度数为奇数的点为 0 个或 2 个。

证明可以简单归纳,不断加边。

  • 有向欧拉图:一张有向图是欧拉图 当且仅当 这张图中所有点处于一个强联通分量内,并且每个点入度等于出度。

证明同无向欧拉图

  • 有向半欧拉图:一张有向图是半欧拉图 当且仅当

    • 所有有向边退化成无向边时,全图联通。

    • 所有点入度等于出度;或者存在恰好两个点,一个 入度减出度为 1,一个 出度减入度为 1,其余点入度等于出度。

例题

模板题,要求对于有向图或者无向图求欧拉回路。求欧拉路时,首先判掉不存在欧拉路的情况,然后就可以直接 dfs 了,因为每一条出边必然对应着一个合法的路径,直接走即可。AC link

无向图字典序最小欧拉路。按照出边字典序排序后 dfs 即可。

行向列连边,发现存在欧拉回路即为 Possible

参考资料

oi-wiki

posted @ 2021-05-05 14:33  zzctommy  阅读(157)  评论(0编辑  收藏  举报