图论——欧拉通路、欧拉回路(有向图无向图混合图)
之前稍微了解有向图、无向图、混合图的欧拉通路、欧拉回路,这里做下笔记,以便日后翻阅。
无向图:
存在欧拉回路的条件:原图连通,每个结点均为偶度结点。
存在欧拉通路的条件:存在欧拉回路,或原图连通,有两个结点为奇度结点,其他结点均为偶度结点。
有向图:
存在欧拉回路的条件:基图连通,每个结点的入度等于出度。
存在欧拉通路的条件:存在欧拉回路,或基图连通,有一个结点入度等于出度+1,有一个结点出度等于入度+1,其他结点的入度等于出度。
混合图:
存在欧拉回路的条件:
1.将无向边随便定向,每个结点的入度与出度之差为偶数。
2.进行网络流,若满流,则存在欧拉回路。
(网络流构图:忽略有向边。对于随便定向的无向边,按照所定向连边,流量为1 。对于入度大于出度的点u,连边(u,T),流量为 abs( (in[u]-out[u])/2 )。对于出度大于入度的点v,连边(S,v),流量为abs( (in[v]-out[v])/2 ))。
存在欧拉通路的条件:存在欧拉回路,或
1.将无向边随便定向,有两个结点的入度与出度之差为奇数,其他结点的入度与出度之差为偶数。
2.在两个奇度结点间连一条无向边,进行网络流,若满流,则存在欧拉通路。
(网络流构图:忽略有向边。对于随便定向的无向边,按照所定向连边,流量为1 。对于入度大于出度的点u,连边(u,T),流量为 abs( (in[u]-out[u])/2 )。对于出度大于入度的点v,连边(S,v),流量为abs( (in[v]-out[v])/2 ))。
混合图的求解过程其实是,无向边有向化,求解有向图的欧拉路。
而求解有向图、无向图的欧拉路类似队列搜。
以上,有错望指出。