歐拉回路

定義

       歐拉回路:圖G,若存在一條路,通過G中每條邊有且僅有一次,稱這條路爲歐拉路,若是存在一條迴路通過G每條邊有且僅有一次,稱這條迴路爲歐拉回路。具備歐拉回路的圖成爲歐拉圖。
spa

判斷原理

有向圖:圖連通,有一個頂點出度大入度1,有一個頂點入度大出度1,其他都是出度=入度。
無向圖:圖連通,只有兩個頂點是奇數度,其他都是偶數度的。

經常使用處理流程

1.使用DFS或並查集判斷連通性
2.斷定度數是否知足條件 
3.獲取迴路
void euler(int u){
    for(int v = 0; v < n; v++) if(G[u][v] && !vis[u][v]){
       vis[u][v] = vis[v][u] = 1 /* vis[u][v] = 1 for 有向圖*/
       euler(v);
       cout << u << "->" << v  << endl;   
    } 
}
相關文章
相關標籤/搜索