题目链接:http://poj.org/problem?id=1041

思路:懒得写了,直接copy吧:对于一个图可以从一个顶点沿着边走下去,每个边只走一次,所有的边都经过后回到原点的路。一个无向图存在欧拉回路的充要条件是每个顶点的度是偶数, 对于有向图存在欧拉回路的条件是每个顶点的出度等于入度(就是出去的边数等于进来的边数)。根据这个首先判断存在欧拉回路不, 如果存在然后用DFS去找欧拉回路。DFS的思想等效于先找一个环,然后对环上所有点递归DFS,并且把这些递归产生的路插入这个环中。 实际上程序实现起来很简单,递归完成后不需要单独做插入。

由于图已经保证连通,首先用度数是否是偶数,判断图是否是欧拉图,然后,输出最小升序,其实就是每次都从小往大的搜,先搜得一个最小序环,然后对环上的每一点进行搜索,其实对于欧拉图而言,每个点要么就只剩一个点,什么也搜不到了,要么还有一个环,只要把环上路径全都插入到对应位置上,用栈存路径,每次只有回溯到当前点,就是说当前点的后继都已经搜过了的时候,才把当前点入栈,这样一来倒着输出,就能得到一个欧拉回路,而且是最小升序。

http://paste.ubuntu.com/5992690/

最新文章

  1. SQL Server 分区表补充说明
  2. Flex HTTPService json
  3. iOS中属性与成员变量的区别
  4. Spring MVC 上传文件
  5. 修改maven一更新jre就变成1.5版本
  6. c# 发送邮件、附件 分类: C# 2014-12-17 16:41 201人阅读 评论(0) 收藏
  7. Android的应用程序的异常处理2
  8. UNIX 网络编程之线程
  9. Java菜鸟学习笔记--面向对象篇(十六):Object类方法
  10. PHP. 03 .ajax传输XML、 ajax传输json、封装
  11. iOS8 UILocalNotification 添加启动授权
  12. Redis从入门到精通:中级篇
  13. 条件随机场CRF(三) 模型学习与维特比算法解码
  14. javascript知识详解之8张思维导图
  15. cnblogs
  16. VMware复制CentOS7,网络配置问题处理
  17. 动态创建的 CEdit 被限制长度,增加 ES_AUTOHSCROLL 属性;被无法Tab激活焦点,增加 WS_TABSTOP 属性(转)
  18. python r(不进行转义)的用法
  19. Android-Kotlin-空值处理&字符串比较&常量
  20. WPF应用

热门文章

  1. Vue基础知识总结(一)
  2. Spark(九) -- SparkSQL API编程
  3. iOS怎样找到自己的沙盒
  4. ERROR: ld.so: object '/usr/lib64/libtcmalloc.so.4' from LD_PRELOAD cannot be preloaded: ignored
  5. 【Python3 爬虫】15_Fiddler抓包分析
  6. iOS开发-Object-C学习之结构体使用
  7. LoadRunner+Java接口性能测试
  8. python 排序函数
  9. Atitit. 订单管理 收银单持久化 功能设计  基于ecshop订单结构
  10. MSP430WARE++的使用3:modbus模块的调用方法