zoukankan      html  css  js  c++  java
  • 图论——欧拉通路、欧拉回路(有向图无向图混合图)

    之前稍微了解有向图、无向图、混合图的欧拉通路、欧拉回路,这里做下笔记,以便日后翻阅。

    无向图:

    存在欧拉回路的条件:原图连通,每个结点均为偶度结点。

    存在欧拉通路的条件:存在欧拉回路,或原图连通,有两个结点为奇度结点,其他结点均为偶度结点。

    有向图:

    存在欧拉回路的条件:基图连通,每个结点的入度等于出度。

    存在欧拉通路的条件:存在欧拉回路,或基图连通,有一个结点入度等于出度+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 ))。

    混合图的求解过程其实是,无向边有向化,求解有向图的欧拉路。

    而求解有向图、无向图的欧拉路类似队列搜。

    以上,有错望指出。

  • 相关阅读:
    Python中property的使用
    超级水王问题
    electrion 修改api.js 就报错
    electron connection lost:The server closed the connection
    electron vscode 调试时始终部分 js 进不了断点
    electron Uncaught TypeError: Cannot read property 'dialog' of undefined
    C# IndexOf 报错 值不能为null,参数名value
    electron-vue 插入 vue-devTools
    Vue调试神器vue-devtools安装
    electrion vue __dirname is a NodeJS variable
  • 原文地址:https://www.cnblogs.com/nextbin/p/4005396.html
Copyright © 2011-2022 走看看