尤拉環 尤拉路徑的判定和求法

2021-07-11 01:45:19 字數 588 閱讀 9438

給定乙個無向圖g,一條路徑經過圖g的每一條邊,且僅經過一次,這條路徑稱為尤拉路徑(eulerian tour),如果尤拉路徑的起始頂點和終點是同一頂點,則稱為尤拉迴路(eulerian circuit).

尤拉路徑演算法:

無向圖g存在尤拉路徑的充要條件:圖g是連通的,且至多除兩個點外(可以為0個,連線圖不可能有且僅有乙個頂點的度為奇數)其它所有頂點的度為偶數.

要找尤拉路徑, 滿足上述條件,只要簡單的找出乙個度為奇數的節點,遍歷結點,看是否圖連通

/*判斷乙個圖中是否存在尤拉迴路(每條邊恰好只走一次,並能回到出發點的路徑),

在以下三種情況中有三種不同的演算法:

一、無向圖

每個頂點的度數都是偶數,則存在尤拉迴路。

二、有向圖(所有邊都是單向的)

每個節頂點的入度都等於出度,則存在尤拉迴路。

以上兩種情況都很好理解。其原理就是每個頂點都要能進去多少次就能出來多少次。

三、混合圖(有的邊是單向的,有的邊是無向的。常被用於比喻城市裡的交通網路,

有的路是單行道,有的路是雙行道。)

找到乙個給每條無向的邊定向的策略,使得每個頂點的入度等於出度,這樣就能轉換成上面第二種情況。

尤拉函式求法

法一 根號n做法 int phi int n if n 1 ans ans n n 1 return ans 法二 線性篩做法 寫在前面 對於尤拉函式有如下三條性質 p為素數 1 phi p p 1 2 當p與i互質時有 phi p i phi p phi i 3 當i p 0時有 phi p i ...

尤拉函式的求法

定義 尤拉函式f n 表示小於或等於n的數中與n互質的數的個數 通式 f n n 1 1 p1 1 1 p2 1 1 pn 其中p1,p2 pn為x的所有質因數,x是不為0的整數。1 1 唯一和1 互質的數 小於等於1 就是1本身 注意 每種質因數只乙個。比如12 2 2 3那麼 12 12 1 1...

尤拉函式的求法

long long eular long long n if n 1 ans ans n return ans const int maxn 1e5 const int branch 26 const int inf 0x3f3f3f3f const int mod 1e6 7 int euler ...