欧拉路与欧拉回路

简介

  1. 简单说就是能从图的 某一点 不重复地 走过图的所有点(并非点不重复,是边不重复),其所经过的路径为欧拉路
  2. 欧拉回路是一种欧拉路,它是在欧拉路的基础上要求最后回到起始点(即1-10点,从点1开始,欧拉路要求不重复走完路径1-9,欧拉回路要求最后回到点1)

定理相关

定理内容

奇点 : 点上连接路的个数为奇数个的点

  1. 存在欧拉路的图,奇点有且仅有两个
  2. 存在欧拉回路的图,一定无奇点

举个栗子

欧拉路

汉字 “中” “日”等等
欧拉路举例

欧拉回路

欧拉回路示例

简单证明

从一个奇点出发,到另一奇点,期间经过的偶点,因为点上的路径有偶数条,可进也可出,必然能通过(不像奇点,只能走一次)

无奇点的图,点上路径均有偶数条,可进也可出

代码实现

大部分题只找到一条路即可,可选择深度优先搜索

深度优先搜索(dfs)

邻接矩阵
int mapp[n][n];				//点数
void dfs(int xx) {
   
	printf("%d " ,xx);
	for(int j=1;j<=n;++j) {
   
		if(mapp[xx][j]) {
   
			mapp[xx][j]=0;
//			mapp[j][xx]=0;		无向图
			dfs(j); 
		}
	}
}
int main() {
   
	scanf("%d %d",&n,&m);			//点数 边数
	for(int i=1;i<=m;++
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值