poj 1041(欧拉回路+输出字典序最小路径)
2024-08-26 23:22:47
题目链接:http://poj.org/problem?id=1041
思路:懒得写了,直接copy吧:对于一个图可以从一个顶点沿着边走下去,每个边只走一次,所有的边都经过后回到原点的路。一个无向图存在欧拉回路的充要条件是每个顶点的度是偶数, 对于有向图存在欧拉回路的条件是每个顶点的出度等于入度(就是出去的边数等于进来的边数)。根据这个首先判断存在欧拉回路不, 如果存在然后用DFS去找欧拉回路。DFS的思想等效于先找一个环,然后对环上所有点递归DFS,并且把这些递归产生的路插入这个环中。 实际上程序实现起来很简单,递归完成后不需要单独做插入。
由于图已经保证连通,首先用度数是否是偶数,判断图是否是欧拉图,然后,输出最小升序,其实就是每次都从小往大的搜,先搜得一个最小序环,然后对环上的每一点进行搜索,其实对于欧拉图而言,每个点要么就只剩一个点,什么也搜不到了,要么还有一个环,只要把环上路径全都插入到对应位置上,用栈存路径,每次只有回溯到当前点,就是说当前点的后继都已经搜过了的时候,才把当前点入栈,这样一来倒着输出,就能得到一个欧拉回路,而且是最小升序。
http://paste.ubuntu.com/5992690/
最新文章
- SQL Server 分区表补充说明
- Flex HTTPService json
- iOS中属性与成员变量的区别
- Spring MVC 上传文件
- 修改maven一更新jre就变成1.5版本
- c# 发送邮件、附件 分类: C# 2014-12-17 16:41 201人阅读 评论(0) 收藏
- Android的应用程序的异常处理2
- UNIX 网络编程之线程
- Java菜鸟学习笔记--面向对象篇(十六):Object类方法
- PHP. 03 .ajax传输XML、 ajax传输json、封装
- iOS8 UILocalNotification 添加启动授权
- Redis从入门到精通:中级篇
- 条件随机场CRF(三) 模型学习与维特比算法解码
- javascript知识详解之8张思维导图
- cnblogs
- VMware复制CentOS7,网络配置问题处理
- 动态创建的 CEdit 被限制长度,增加 ES_AUTOHSCROLL 属性;被无法Tab激活焦点,增加 WS_TABSTOP 属性(转)
- python r(不进行转义)的用法
- Android-Kotlin-空值处理&;字符串比较&;常量
- WPF应用
热门文章
- Vue基础知识总结(一)
- Spark(九) -- SparkSQL API编程
- iOS怎样找到自己的沙盒
- ERROR: ld.so: object '/usr/lib64/libtcmalloc.so.4' from LD_PRELOAD cannot be preloaded: ignored
- 【Python3 爬虫】15_Fiddler抓包分析
- iOS开发-Object-C学习之结构体使用
- LoadRunner+Java接口性能测试
- python 排序函数
- Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构
- MSP430WARE++的使用3:modbus模块的调用方法