欧拉回路(模板题)

博客介绍了欧拉回路的问题,通过一道具有挑战性的题目展示了毒瘤数据。作者在理解题解后,重新实现代码并分享了其见解。文章强调了快读的重要性以避免超时,并解释了DFS的最新思路,涉及无向边的处理和图的类型判断。作者提醒读者,对于不是有向图或无向图的情况,不存在欧拉回路,且图不连通也导致不存在欧拉回路。
摘要由CSDN通过智能技术生成

序言:

首先感谢@G20222222_tly学长提供的关于dfs的思路一份。

在此之前,如果看过我之前写的博客的同学,不必担心,只需要,忘记!

引子:

额,这道题,以平常的题目,过人的惊天数据来展示什么叫毒瘤

然后去看了一下题解, 自己又重码了一遍,结果重新再来看的时候是一脸懵逼嗄。

然后想了将近一晚上的思路终于有了起色。

下面就是我的一些见解,和代码


代码及其思路

首先加入快读,是因为原代码是刚好卡着时间过的,

如果要按照,本人目前所学的东西来写的话

直接超时,不用说了。

关于dfs最新的思路就是这样的:

就是退回来的时候的边塞进ans里面,意思就是:

我们首先考虑就是无向边会拆分成正反两条边,

j j j条边,正向就是 > > 1 >> 1 >>1,反向就是 j < < 1 ∣ 1 j << 1 | 1 j<<11

若要在正反两条边上同时打一个 v i s vis vis标记,就打在 j > > 1 j >> 1 j>>1上。

~~ 以上来自tly学长思路 ~~

之后就是判断是否是有向图或无向图, 如果都不是那就没有欧拉回路,而且如果图不连通也是不存在的

最后就是将思路里讲的处理负数


/* 
 当图是无向图时,欧拉回路的存在条件为所有点的入度为偶数

当图是有向图时,欧拉回路的存在条件是所有点的入度等于出度

求欧拉回路时dfs所有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值