先来复习一下混合图欧拉回路:给定一张含有单向边和双向边的图,使得每一点的入度出度相同。

首先对于有向边来说,它能贡献的入度出度是确定的,我们不予考虑。对于无向图,它可以通过改变方向来改变两端点的出入度。好的,我们不妨先将这些无向边随意定向,因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路,所以我们先扫一遍总度数看看是否为偶数,如果是奇数我们弃疗就好。

接下来我们要尝试着修复这些无向边的方向使得度数平衡。首先细化问题到每一个点:对于点u,如果它的入度大于出度,那么也就是说我们要修改 (入度-出度)/2 条边的方向来让这个点的出入度平衡。我们抽象化这个问题,事实上我们要做的就是将一些入度和出度分配给这么多的点,分配问题!

为了方便叙述,我们设 delta=abs(in_degree - out_degree)/2

分配问题解决方法:将每一个点抽象成点(然而这一步并没有什么用= =),设立源点向这些点引弧,控源delta,对于每一条u,v之间的无向边我们引流1。然后就变成限制问题求合理,控汇delta,设标准量为总出入度之差,看是否满流分配即可。

具体实现的时候注意好细节:比如重边问题汇总流量,贪心放边:就是在给无向图确定方向的时候如果这两个点已经有出入度之差了我们不妨改善一下这两个点的处境而不是无脑加边,但这样做真的会快多少嘛。。。(雾)

搜索

复制

POJ 1637 混合图欧拉回路的更多相关文章

  1. poj 1637 混合图欧拉回路 学习笔记

    题目大意 求混合图是否存在欧拉回路 做法 有向边我们只有增加入度出度 对于无向边,我们给它设定一个初始方向 如果不能满足|入度-出度|为偶数,无解 然后在网络流图中, 设设定方向的反向连一条边,表示反 ...

  2. POJ 1637 混合图的欧拉回路判定

    题意:一张混合图,判断是否存在欧拉回路. 分析参考: 混合图(既有有向边又有无向边的图)中欧拉环.欧拉路径的判定需要借助网络流! (1)欧拉环的判定:一开始当然是判断原图的基图是否连通,若不连通则一定 ...

  3. POJ 1637 混合图求欧拉回路 最大流实现

    前面讲过了无向图,有向图求欧拉回路,欧拉通路的做法.可以直接根据度数来判断,当然前提是这是一个连通图. 这道题既有无向边,又有有向边,然后求欧拉回路. 采用的方法是最大流. 具体处理方法. 首先,我们 ...

  4. POJ 1637 - Sightseeing tour - [最大流解决混合图欧拉回路]

    嗯,这是我上一篇文章说的那本宝典的第二题,我只想说,真TM是本宝典……做的我又痛苦又激动……(我感觉ACM的日常尽在这张表情中了) 题目链接:http://poj.org/problem?id=163 ...

  5. POJ 1637 Sightseeing tour(混合图欧拉回路+最大流)

    http://poj.org/problem?id=1637 题意:给出n个点和m条边,这些边有些是单向边,有些是双向边,判断是否能构成欧拉回路. 思路: 构成有向图欧拉回路的要求是入度=出度,无向图 ...

  6. POJ 1637 Sightseeing tour ★混合图欧拉回路

    [题目大意]混合图欧拉回路(1 <= N <= 200, 1 <= M <= 1000) [建模方法] 把该图的无向边随便定向,计算每个点的入度和出度.如果有某个点出入度之差为 ...

  7. Sightseeing tour 【混合图欧拉回路】

    题目链接:http://poj.org/problem?id=1637 Sightseeing tour Time Limit: 1000MS   Memory Limit: 10000K Total ...

  8. 【BZOJ-2095】Bridge 最大流 + 混合图欧拉回路 + 二分

    2095: [Poi2010]Bridges Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 218[Submit][Stat ...

  9. poj1637Sightseeing tour(混合图欧拉回路)

    题目请戳这里 题目大意:求混合图欧拉回路. 题目分析:最大流.竟然用网络流求混合图的欧拉回路,涨姿势了啊啊.. 其实仔细一想也是那么回事.欧拉回路是遍历所有边一次又回到起点的回路.双向图只要每个点度数 ...

随机推荐

  1. javascript中错误使用var造成undefined

    在javascript中依据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量能够被全部的脚本訪问:在函数中定义的变量是局部变量,局部变量仅仅在函数内有效. 假设全局变量和局 ...

  2. HDU 2066-一个人的旅行(最短路Dijkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. DM8168 坎坷硬件之路(DDR3)

    新做了8168板,调试DDR3的时候EMIF0遇到了个别数据位出错的问题 DDR3 128MB*8=1GB 我为了測试DDR3的所有空间,把地址存到DDR3中,就是*pdata++=(Uint32)p ...

  4. Ubuntu install mysql

    sudo apt-get install mysql-server sudo apt-get install libmysqlclient-dev

  5. firebug中console命令尝试

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 虚拟器运行iOS8地图提示错误

    /SourceCache/ProtocolBuffer_Sim/ProtocolBuffer-225/Runtime/PBRequester.m:799 server (https://gsp13-c ...

  7. 绘图时,根据size()和自定义rect编程的区别

    在绘图的时候,很多时候编写的代码需要根据当前窗口自身的size来进行绘制,这个时候可以添加一个额外的中间rect来做过度,这样以后的绘图机制不会 随着size的变化而不断变化.你的处理逻辑可以保持不变 ...

  8. 中文版kendoUI API — Grid(一)

    1.altRowTemplate 类型:Function | String 说明:提供表格行的交替模板,默认grid表格为每一个数据元素提供一个tr 注意:模板中最外层的html元素必须是<tr ...

  9. 新思路:Exception Handle

    以前提到异常处理,马上就想到加try-catch. 没错,这种应激反应是对的.关键是怎么加? 如果想为每一个方法都加异常处理,输出相同格式的异常信息,应该怎么做呢? 难道是为每一个方法加一个try-c ...

  10. jQuery自带的一些常用方法总结

    jQuery自带的一些常用方法总结 这篇文章主要介绍了jQuery自带的一些常用方法总结,包括$.trim .$.contains.$.each.$.map.$.inArray.$.extend等,需 ...