| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 欧拉通路和欧拉回路 -> 正文阅读 |
|
[数据结构与算法]欧拉通路和欧拉回路 |
定义:欧拉通路: 如果存在一条通路包含此图中所有的边,则该通路成为欧拉通路,也称欧拉路径(一笔画) 判断定理(充要条件):在无向图中欧拉路径: 图中所有奇度点的数量为0或2 在有向图中欧拉路径:1. 所有点的入度等于出度? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 或者 2.在一点出度比入度大1(起点),一点入度比出度大1(终点),其他点的入度均等于出度 算法:寻找一条欧拉回路可以使用dfs(顺着dfs一遍,回溯时记录路径)优化? 例题(AcWing 1184.欧拉回路)给定一张图,请你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。 输入格式第一行包含一个整数?t,t∈{1,2},如果?t=1,表示所给图为无向图,如果?t=2,表示所给图为有向图。 第二行包含两个整数?n,mn,m,表示图的结点数和边数。 接下来?mm?行中,第?ii?行两个整数?vi,uivi,ui,表示第?ii?条边(从?11?开始编号)。
图中可能有重边也可能有自环。 点的编号从?11?到?nn。 输出格式如果无法一笔画出欧拉回路,则输出一行:NO。 否则,输出一行:YES,接下来一行输出?任意一组?合法方案即可。
数据范围 1≤n≤100000 输入样例1:
输出样例1:
输入样例2:
输出样例2:
CODE
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 19:45:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |