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

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

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

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

转载于:https://www.cnblogs.com/wally/p/3263538.html

poj 1041(欧拉回路+输出字典序最小路径)相关推荐

  1. UVA10537 The Toll! Revisited (思维、最短路、输出字典序最小路径)

    整理的算法模板合集: ACM模板 题目链接 我们要注意去的时候交的n/20单位的货物,但是倒着回去求答案的时候我们要加上ceil(n/19.0)(自己手算) 字典序中大写字母比小写字母更小 注意看数据 ...

  2. Unidirectional TSP UVA - 116(多阶段决策+输出字典序最小的路径)

    Unidirectional TSP UVA - 116 题意: 给你m行n列的矩阵,从第一列出发,到最后一列. 要求 经过的整数和最小. 输出路径上,每列的行号,多解时,输出字典序最小的. 思路: ...

  3. hihoCoder #1468 : 2-SAT·hihoCoder新春晚会(2-SAT 输出字典序最小的方案)

    描述 hihoCoder新春晚会正在紧张地筹备中.晚会分为上半场和下半场,总导演小Hi现在要为N个节目安排演出时间(上半场或下半场).为了描述方便,我们将第i个节目对应两个编号2i-1和2i,分别表示 ...

  4. 背包问题 输出方案、输出字典序最小方案、可行方案数、最优方案总数

    原文地址:https://blog.csdn.net/ronaldo7_zyb/article/details/81069906 1. 要求输出方案: 以01背包为例 我们可以知到,01背包用一维数组 ...

  5. UVA116 单向TSP Unidirectional TSP(多阶段决策问题、输出字典序最小的方案、DAG上DP)

    整理的算法模板合集: ACM模板 题目传送门 简单的多阶段决策问题. 多段图DAG,其节点可以划分为若干个阶段,每一个阶段只由上一个阶段所决定. 因为本题要求输出从前到后的方案,所以我们转移方程的时候 ...

  6. poj 1815 Friendship 最小割 拆点 输出字典序

    题目链接:http://poj.org/problem?id=1815 题意:A与B能通信当且仅当A知道B的电话号或者A知道C的电话号且C与B能通信.若A知道B的电话号,那么B也知道A的电话号. 然而 ...

  7. POJ 1041 John's trip(欧拉回路)

    本文链接:http://www.cnblogs.com/Ash-ly/p/5398549.html 题意: Johnny 有了一台新车,他想去访问他所有的朋友(赤裸裸的炫耀?),他的朋友有很多,住在城 ...

  8. hdu 1814 字典序最小的2sat(暴力深搜)

    题意:      题意就是最基础的2sat,关系只有矛盾关系,然后二选一,关键是这个题目是输出字典序最小的那组解. 思路:      输出字典序最小,用强连通那个实现不了(起码没看到有人实现),其实我 ...

  9. 【POJ - 2594】Treasure Exploration(floyd传递闭包 + 最小路径覆盖,图论)

    题干: Have you ever read any book about treasure exploration? Have you ever see any film about treasur ...

最新文章

  1. win7 重启 IIS.
  2. 判断不为空和不为空串的方法java
  3. 由于未分配内存的指针导致段错误
  4. 【转】如何将域中的AD数据导入SharePoint
  5. 【JQuery】jQuery中的常用方法小结
  6. Windows 10 之修改登录背景(Win10BGChanger)
  7. Lnmp架构之PHP
  8. at指令代码 stm32f030_汇编语言程序设计第二篇——80X86汇编语言伪指令
  9. HDU-5781 ATM Mechine(概率DP)
  10. docker elasticsearch安装
  11. 破解校园数字安全难点,联想推出智慧教育安全体系
  12. RK3288 Android7.1软件开发指南
  13. DICOM世界观·第二章:[2]像素操作
  14. 【STM32F429开发板用户手册】第33章 STM32F429的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)
  15. 一文读懂5G R16标准究竟讲了些什么
  16. 计算机硬盘一直正在处理,win7电脑快速退出移动硬盘时一直提示设备正在使用中怎么办?...
  17. 金蝶eas系统服务器端口,金蝶eas服务器端设置
  18. sssdeeeeeeeeeeeee
  19. 路径追踪 SAH优化的Bvh
  20. ValueError: [E030] Sentence boundaries unset. You can add the 'sentencizer' component to the pipelin

热门文章

  1. python3多个变量赋值
  2. spring boot日志框架体系剖析(默认采用logback作为日志框架)
  3. Hibernate注解开发-PO类注解配置
  4. Spring AOP编程-传统基于aspectJ切点AOP开发
  5. 【面试题】struts2的工作流程
  6. Linux 查看CPU信息,内存等信息
  7. 关于C++ Qt项目实现最简单Http Server的踩坑记录
  8. Qt工程生成xcode工程文件
  9. 武侠q传服务器维护,《武侠Q传》就服务器人多过载致歉玩家赞有诚意
  10. 编码方式 / ASCII、UNICODE、UTF-8、ANSI