一筆畫問題 尤拉迴路 半尤拉迴路 並查集

2022-03-31 23:21:01 字數 888 閱讀 8111

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:4

描述zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。

輸入第一行只有乙個正整數n(n<=10)表示測試資料的組數。

每組測試資料的第一行有兩個正整數p,q(p<=1000,q<=2000),分別表示這個畫中有多少個頂點和多少條連線。(點的編號從1到p)

隨後的q行,每行有兩個正整數a,b(0輸出

如果存在符合條件的連線,則輸出"yes",

如果不存在符合條件的連線,輸出"no"。

樣例輸入

2

4 31 2

1 31 4

4 51 2

2 31 3

1 43 4

樣例輸出

no

yes

題解:需要判斷尤拉迴路,回到起點則各點全為偶數,不會到起點則有兩個奇點,此時為半尤拉迴路,另外還需要判斷聯通;還可以用dfs;;;

1 #include2 #include

3#define min(x,y) x4

#define max(x,y) x>y?x:y

5int visited[1010],node[1010];6

int find(int

x)13

intmain()oular=link=0;28

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

32if(link>1||!(oular==0||oular==2))puts("no"

);33

else puts("

yes"

); 34}35

return0;

36 }

尤拉迴路解決一筆畫問題

一筆畫問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入 第一行只有乙個正整數n n 10 表示測試資料的組數。每組測...

尤拉迴路判定演算法 一筆畫問題

如果圖中的一條路經經過每條邊一次,則該路徑稱為尤拉路徑。如果該路徑正好是乙個迴路,即從起點出發又回到起點,則該路徑稱為尤拉迴路。如果乙個圖有尤拉迴路,則該圖稱為尤拉圖。無向圖存在尤拉迴路的充要條件 乙個無向圖存在尤拉迴路,當且僅當該圖所有頂點度數都為偶數,且該圖是連通圖。無向圖存在尤拉路徑的充要條件...

NYOJ 一筆畫問題(並查集 尤拉迴路)

nyoj 42一筆畫問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 4描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入 第一行只有乙個正整數n n 10 表示測試資料的...