nyoj42一筆畫問題(尤拉迴路)

2021-06-22 16:28:50 字數 1456 閱讀 2490

題目解析:此題是尤拉迴路,尤拉迴路滿足的條件:無論是有向圖還是無向圖前提條件都是圖要連通,如果是無向圖需要有0個奇度頂點或者2個奇度頂點,如果是有向圖,在前兩個條件的基礎之上還要附加上乙個條件:乙個奇度頂點入度比出度大1,另乙個奇度頂點出度比入度大1。所以要解決這樣的問題,首先要判斷圖的連通性,在圖是連通的前提下,再判斷奇度頂點的個數。在判斷圖的連通性時,可以採用並查集,也可以用深搜,此篇採用了並查集,深搜將在下篇講解。

**如下:

01.#include

02.#include

03.intfather[1010];

04.voidinit(intn)//初始化father陣列,初始時每乙個結點的根是自己

05.

09.intfind(intx)//尋根函式

10.

15.intmain()

16.

35.intc1=0,c2=0;

36.for(inti=1;i<=m;i++)

37.

43.if((c2==0||c2==2)&&c1==1)

44.printf("yes\n");

45.else

46.printf("no\n");

47.}

48.return0;

49.}

nyoj42 一筆畫問題 尤拉迴路

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

nyoj42一筆畫問題 尤拉迴路

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

nyoj42 一筆畫問題 DFS 尤拉迴路模板題

include include include include include include using namespace std int ans 2100 儲存該點的度 int visit 2200 標記陣列 int map 2200 2200 二維陣列存圖 int p,q void dfs ...