尤拉迴路學習筆記

2022-02-24 16:53:35 字數 1089 閱讀 9495

這裡先說一下尤拉圖和尤拉迴路的概念:

如果圖g中的乙個路徑包括每個邊恰好一次,則該路徑稱為尤拉路徑(euler path)。

如果乙個迴路是尤拉路徑,則稱為尤拉迴路(euler circuit)。

具有尤拉迴路的圖稱為尤拉圖(簡稱e圖)。具有尤拉路徑但不具有尤拉迴路的圖稱為半尤拉圖。

這就清楚好多了,然後下面是尤拉圖的演算法:fleury演算法

這個演算法的思想是,隨機走過一條不是橋的邊,走過之後就刪掉。根據尤拉圖的性質:

1.無向圖g是尤拉圖的充分必要條件是g 是連通圖並且沒有奇數度頂點

2.無向圖g是半尤拉圖的充分必要條件是g是連通的並且恰好有兩個奇數度頂點.

3.有向圖g是尤拉圖的充分必要條件是圖是強連通,並且每個定點的入度等於出度

4.有向圖g是半尤拉圖的充分必要條件是圖單向連通並且恰好有兩個奇數度頂點,這兩個奇數度頂點乙個的出度比入度大1,乙個剛好反過來,其餘的頂點的出度等於入度

我們可以找到根節點,然後我們就跑演算法就ok了

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;

8int

n,m;

9 stacks;

10const

int n = 200000;11

int c[600][600

];12

intind[n];

13int

head[n],tot;

14void dfs(int

x)15

23s.push(x);24}

25int

main()

2638

int root=1;39

for(int i=1; i<=n; i++)

40if(ind[i]%2==1)41

45dfs(root);

46while(!s.empty())

4751 }

學習筆記 尤拉迴路

有兩個概念 尤拉路徑 在乙個圖中,由i點出發,將每個邊遍歷一次最終到達j點的一條路徑。尤拉迴路 i j時的尤拉路徑。我們需要確定乙個圖是否存在尤拉路徑,並找到這條路徑 那就很好做了qwq 可以用並查集判斷圖的聯通性 然後對於有向圖與無向圖,使用上述性質進行判斷 對於無向圖的尤拉迴路,任意一點都可以作...

尤拉迴路學習筆記

尤拉道路 概念 從無向圖中的乙個結點出發走出一條道路,每條邊恰好經過一次。這樣的路線稱為尤拉道路,也可形象的稱為 一筆畫 性質 除了起點和終點以外,其他點的 進出 次數應該相等。換句話說,除了起點和終點以外,其他點的度數應該是偶數 這也就引出了尤拉道路的充分條件 如果乙個無向圖是連通的,且最多只有兩...

學習筆記 尤拉迴路

設 g v,e 是一張圖 尤拉迴路 圖 g 中經過每條邊一次並且僅一次的迴路.尤拉路徑 圖 g 中經過每條邊一次並且僅一次的路徑.尤拉圖 存在尤拉迴路的圖.半尤拉圖 存在尤拉路徑但不存在尤拉迴路的圖.以下的圖中,預設把孤立點刪除,因為這樣不會影響原圖是否為尤拉圖.定理1 無向圖 g 為尤拉圖,當且僅...