HDU 1879 尤拉迴路

2021-08-07 06:19:11 字數 942 閱讀 7833

題意:

判斷乙個圖是否是尤拉迴路。

補充:尤拉通路: 通過圖中每條邊且只通過一次,並且經過每一頂點的通路。

尤拉迴路: 通過圖中每條邊且只通過一次,並且經過每一頂點的迴路。

無向圖是否具有尤拉通路或迴路的判定:

尤拉通路:圖連通;圖中只有0個或2個度為奇數的節點

尤拉迴路:圖連通;圖中所有節點度均為偶數

有向圖是否具有尤拉通路或迴路的判定:

尤拉通路:圖連通;除2個端點外其餘節點入度=出度;1個端點入度比出度大1;乙個端點入度比出度小1 或 所有節點入度等於出度

尤拉迴路:圖連通;所有節點入度等於出度

這道題的演算法思路:利用並查集先判斷圖連通性,然後利用in陣列記錄各點的度。(因為該題是無向圖)

判斷條件:當乙個點的根節點與其他點的根節點不等,則不連通,則返回0;當該點的度數是奇數時則非尤拉圖,返回0;其他情況返回1

**:

#include #include #include #include using namespace std;

//判斷連通性,然後判斷度相同

int in[1001];//入度

int par[1001],n,m;

int find(int x);

void unite(int x, int y);

int find(int x)

void unite(int x, int y)

int main()

scanf("%d",&m);

for(int i = 0; i < m; i++)

int flag=1;

int temp=find(1);

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

printf("%d\n",flag);

} return 0;

}

HDU 尤拉迴路

problem description 尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?input 測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n 1 n 1000 和邊數m 隨後的m行對應m條邊,每行給出...

HDU 1878 尤拉迴路(判斷尤拉迴路)

題目大意 尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?解題思路 判斷無向圖是否存在尤拉迴路,判斷每個點的度數是否為偶數 並查集確認連通性。1 include2 include3 include4 define clr arr,val...

尤拉迴路(HDU 1878) 尤拉迴路模板題

題目鏈結 尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n 1 n 1000 和邊數m 隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個節點...