HDU1878 尤拉迴路

2021-07-09 04:34:09 字數 811 閱讀 7004

problem description

尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?

input

測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n ( 1 < n < 1000 )和邊數m;隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個節點的編號(節點從1到n編號)。當n為0時輸入結 束。

output

每個測試用例的輸出佔一行,若尤拉迴路存在則輸出1,否則輸出0。

sample input

3 3

1 21 3

題意就是判斷乙個無向圖是否是尤拉迴路

要滿足以下兩個條件:1、圖是連通的。2、所有點的度數是偶數

拓展一下思維,如果是有向圖呢?

1、圖是連通的。2、所有點的入度=出度

#include#include#define maxn 1005

using namespace std;

int d[maxn],father[maxn];

int getfather(int x) //尋找根節點

int main()

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

if (d[i]%2 || getfather(i)!=father[1]) break;

if (i<=n) printf("0\n");

else printf("1\n");

}return 0;

}

HDU 1878 尤拉迴路

演算法思想 判斷乙個圖中是否存在尤拉迴路 每條邊恰好只走一次,並能回到出發點的路徑 在以下三種情況中有三種不同的演算法 一 無向圖 每個頂點的度數都是偶數,則存在尤拉迴路。二 有向圖 所有邊都是單向的 每個節頂點的入度都等於出度,則存在尤拉迴路。以上兩種情況都很好理解。其原理就是每個頂點都要能進去多...

HDU 1878 尤拉迴路

題意 尤拉迴路的判斷條件,一 無向圖 每個頂點的度數都是偶數,則存在尤拉迴路。二 有向圖 所有邊都是單向的 每個節頂點的入度都等於出度,則存在尤拉迴路。以上兩種情況都很好理解。其原理就是每個頂點都要能進去多少次就能出來多少次。三 混合圖 有的邊是單向的,有的邊是無向的。常被用於比喻城市裡的交通網路,...

HDU 1878 尤拉迴路

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