欧拉回路、欧拉图及其判定

在一张图上,一条从某个点出发,经过所有的边后回到原点的路径叫做欧拉回路。有欧拉回路的图叫做欧拉图。

容易发现,欧拉图一定是联通图。它还需要满足以下条件:

如果是无向图,那么每个结点的度数都是偶数。

如果是有向图,那么每个结点的入度和出度相等。

不难理解这是判断欧拉图的充要条件。

欧拉回路算法详解

我们先判断图是否是欧拉图,然后通过 DFS 的方法来找欧拉回路。

DFS 一个点的时候,我们每次找到一条没有使用过的边,然后先 DFS 那个点,再将这条边加入答案栈中。最后将栈中的元素倒序输出即可。

为了优化复杂度,我们使用当前弧优化,不难证明时间复杂度为 $O(n + m)$。

1#include

2#include

3using namespace std;

4

5const int maxn = 1e5, maxm = 4e5;

6int type, n, m, deg[maxn + 3], top, st[maxm + 3];

7int tot, ter[maxm + 3], id[maxm + 3], nxt[maxm + 3], lnk[maxn + 3], cur[maxn + 3];

8bool vis[maxm + 3];

9

10void add(int u, int v, int w){

11ter[++tot] = v, id[tot] = w;

12nxt[tot] = l

欧拉回路的matlab算法,「学习笔记」欧拉回路算法相关推荐

  1. 「学习笔记」多项式的蛇皮操作

    文章目录 「学习笔记」多项式的蛇皮操作 前置知识 趋近 自然常数 对数 逆元 导函数 牛顿迭代与泰勒公式 不定积分与定积分 多项式乘法 多项式求逆元 多项式除法/取模 多项式牛顿迭代法 多项式开根 「 ...

  2. 「学习笔记」黑马面面布局开发

    「学习笔记」黑马面面布局开发 黑马面面布局开发 一.目的 1.1 技术方案 1.2 代码规范 1.2 目录规范 二.流程开发 2.1 蓝湖/摹客协作平台 2.2 适配方案 2.3 初始化文件 2.4 ...

  3. 「学习笔记」移动Web开发之flex布局9

    「学习笔记」移动Web开发之flex布局9 一.flex布局体验 1.1 传统布局与flex布局 1.2 初体验 二.flex布局原理 2.1 布局原理 三.flex布局父项常见属性 3.1 常见父项 ...

  4. 「学习笔记」品优购项目-上(页面公共部分 )

    「学习笔记」品优购项目-上 品优购项目-上 目标 品优购项目规划 网站制作流程 品优购项目介绍 品优购项目的学习目的 开发工具以及技术栈 开发工具 技术栈 品优购项目搭建工作 创建的文件夹如下(称为项 ...

  5. 「学习笔记」移动Web开发之rem适配布局10

    「学习笔记」移动Web开发之rem适配布局10 一.rem单位 1.1 rem 单位 二.媒体查询 2.1 什么是媒体查询 2.2 语法规范 2.2.1 mediatype 查询类型 2.2.2 关键 ...

  6. 「学习笔记」HTML5CSS3提高6(上)

    「学习笔记」HTML5&CSS3提高6(上) HTML5新特性 概述 语义化标签 (★★) 多媒体标签 视频标签- video(★★★) 基本使用 兼容写法 video 常用属性 音频标签- ...

  7. 「学习笔记」ISAP求最大流

    ISAP学习笔记 ISAP是OI中求最大流的常用方法之一.相对于Dinic,ISAP的速度提升了很多,但编码复杂度也上升了不少. 约定 采用邻接表存储图,对于每条弧,增加一条容量为0的逆向边. d数组 ...

  8. c++时间片轮转rr进程调度算法_「学习笔记」时间片轮转(RR)调度算法(详解版)...

    关键词:时间, 进程, 调度, 队列, 切换 时间片轮转(RR)时间片轮转(RR)调度算法是专门为分时系统设计的.它类似于 FCFS调度,但是增加了抢占以切换进程. 该算法中,将一个较小时间单... ...

  9. 「学习笔记」多项式相关

    序 学多项式也有好久了,可是我自己还没怎么认认真真推过柿子,导致啥都不会,然后被吊打. 看来再不回顾一下就不行了啊. 多项式乘法 写了一个好看一点的\(\mathrm{NTT}\)板子,仅供参考. i ...

最新文章

  1. 桌面虚拟化场景中对存储系统IO性能的评估方法
  2. Android获取SDK的版本信息
  3. java 获取400的错误信息_获取400错误的请求Spring RestTemplate POST
  4. man:命令帮助使用手册
  5. Dart语言精简入门介绍
  6. ubuntu 14.04 ssh
  7. lnmp部署 -----1
  8. iOS项目转移到自动引用计数
  9. Scala - Redis hgetAll 优化 by hscan
  10. python 爬取种子_利用python代码爬取torrentkitty上的种子
  11. a5松下驱动器参数设置表_松下A5,A6伺服电机参数设置
  12. PHP多国语言开发:CodeIgniter 2PHP框架中的多国语言,语言包(i18n)库
  13. 解决微软应用商店打不开 代码: 0x80131500
  14. IE浏览器无法更改缓存,
  15. 捷径越来越少,快钱越来越难,为什么人生的路越来越窄?
  16. 本学期在实验室的收获
  17. 新Macbook电池续航能力表现欠佳,用户表示用不到5小时
  18. ZOJ 1655 Transport Goods
  19. 我所经历的大数据平台发展史(三):互联网时代 • 上篇
  20. 在vue 中 ,dom操作滚动条 scrollTop无效

热门文章

  1. Pixhawk参数调整
  2. python人工智能入门书籍推荐-人工智能极简编程入门(基于PYTHON)
  3. 详讯:微软宣布放弃收购雅虎
  4. 人工智能行业数据防泄漏和设备加密该如何进行
  5. 计算机语言python读音_python+拼音
  6. Python财经实践,股票数据获取及可视化展示
  7. sql server数据库Log文件特别大怎么处理
  8. 零件测绘与计算机作图理论试题,典型零件测量与计算机绘图--详细介绍
  9. oracle数据库应用技术
  10. 风云音乐谷纯净克隆版