欧拉路/欧拉回路 学习笔记

判定

有向图

首先这张图将所有的有向边转为无向边之后图连通。

反例:image

其次,我们知道当且仅当所有点的入度和出度都相等,才会有欧拉回路。因为一个点进去之后一定会出来,所以入度一定等于出度。
同理,我们也可以知道入度和出度差 \(1\) 时,才会有欧拉路。因为不要从起点走回起点,所以起点不会再进去,终点也不会再出来。

无向图

因为无向图没有入/出度之分,所以只用看是否为奇/偶数即可。

路径

相关题目:洛谷 P7771 【模板】欧拉路径

假设我们到了点 \(u\),继续向后遍历,直到没有边为止。然后就是要记录上一次用到哪里了,不然时间复杂度时 \(O(m^2)\)
然后我们回溯到点 \(u\) 时,将 \(u\) 入栈。
欧拉路就是栈的倒序输出。

为什么不边跑 dfs 边输出?
image
这张图如果这么用的话,会先访问终点 \(2\),再访问其他的点。
而最后入栈呢,则是可行的。(解释不清楚啊啊啊啊)

posted @ 2024-12-03 18:18  coding_goat_qwq  阅读(4)  评论(0编辑  收藏  举报