猫ER

Better later than never.

混合欧拉图

一.混合欧拉图里面有混合欧拉回路和混合欧拉通路

二.什么是混合欧拉图?

    既有单向边又有无向边的欧拉图

三.怎么判断是不是?

    *Step1*把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。但是如果存在两个点的入度与出度差为奇数,那么可能存在混合欧拉通路。

    解释:1.设点v他的有向边的入度和出度差值为偶数,<1>现在它与偶数个无向边连接。那么这偶数个无向边中会有一部分是作为入边,一部分作为出边,那么他们的个数组合只有:偶偶,奇奇这两种可能,那么偶-偶,奇-奇一定是偶数,所以可能符合欧拉图的条件的。<2>现在它与奇数个无向边连接。那么他们的组合只有:奇偶这一种组合,那么奇-偶一定是奇数,那么他就不符合欧拉图的条件。

              2.设点v他的有向边的入度和出度差值为奇数,<1>现在它与偶数个无向边连接。奇偶情况如上,那么是否满足欧拉图就要看原来的入度出度,那么一定不符合欧拉图条件,如果是偶数就可以通过后期改变无向边的方向来调试。<2>现在它与奇数个无向边连接。那么可以通过无向边来调节,所以有可能符合欧拉图条件。

              综上:随机定向无向边之后,出入度差值为奇数的一定不可能存在欧拉回路或者欧拉通路。

    *Step2*现在要做的就是能否通过更改无向边的方向来将其构成欧拉图,即所有的点的出度等于入度。

    解释:之前保证了所有点的出入度差值一定为偶数,这可以通过改变这个差值的一半来保证所有点的出度和入度相等。网络流解决,虚拟source,sink。

source到所有点(入度<出度)连接一条容量为(出度-入度)/2的边。

所有点(入度>出度)到sink连接一条容量为(入度-出度)/2的边。

对于所有无向边连一条u到v容量为1的边,表示这条边可以变向。

如果source连边和等于总流量,表示可以构成欧拉图。



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Triple_WDF/article/details/49903457
个人分类: ACM_HDUOJ_POJ
想对作者说点什么? 我来说一句

欧拉图的构造算法

2011年09月25日 12KB 下载

没有更多推荐了,返回首页

不良信息举报

混合欧拉图

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭