(笔记整理未完成)【图论】求欧拉道路和欧拉回路算法

本文介绍了欧拉路径和欧拉回路的概念,并提供了有向图中判断欧拉路径与回路的条件。讨论了无向图中欧拉路径与回路的特征,并分享了洛谷平台上的相关模板题和练习题,涉及连通性判断、字典序最小欧拉路径等问题。文章强调了解决此类问题时需要注意的细节,如数据结构的选择和处理多条边的情况。
摘要由CSDN通过智能技术生成

知识点 


1. 欧拉路径定义

图中经过所有边恰好一次的路径叫欧拉路径(也就是一笔画)。如果此路径的起点终点相同,则称其为一条欧拉回路

2. 欧拉路径判定是否存在

  • 有向图欧拉路径:图中恰好存在 1 个点出度比入度多 1(这个点即为 起点 S),1个点入度比出度多 1(这个点即为 终点 T),其余节点出度 = 入度。

  • 有向图欧拉回路所有点的入度 = 出度(起点 S 和终点 T 可以为任意点)。

  • 无向图欧拉路径:图中恰好存在 2 个点的度数是奇数,其余节点的度数为偶数,这两个度数为奇数的点即为欧拉路径的 起点 S 和 终点 T。

  • 无向图欧拉回路所有点的度数都是偶数(起点 S 和终点 T 可以为任意点)。

注:存在欧拉回路(即满足存在欧拉回路的条件),也一定存在欧拉路径。

当然,一副图有欧拉路径,还必须满足将它的有向边视为无向边后它是连通的(不考虑度为 0 的孤立点),连通性的判断我们可以使用并查集或 dfs 等。


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

题目描述

求有向图字典序最小的欧拉路径。

输入格式

第一行两个整数 n,m 表示有向图的点数和边数。

接下来 m 行每行两个整数 u,v 表示存在一条 u\to v 的有向边。

输出格式

如果不存在欧拉路径,输出一行 No

否则输出一行 m+1 个数字,表示字典序最小的欧拉路径。

输入输出样例

输入 #1

4 6
1 3
2 1
4 2
3 3
1 2
3 4

输出 #1

1 2 1 3 3 4 2<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值