NYIS OJ 42 一筆畫問題

2022-03-06 04:42:34 字數 1356 閱讀 5265

時間限制: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

**[張云聰]原創

上傳者

張云聰解題:尤拉迴路的判斷:需要完成兩項任務:首先是判斷圖的連通性,必須要是連通的!然後,對於無向圖,如果至多只有兩個奇點,則一定存在尤拉迴路,即可以一筆畫!

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9

#define ll long long

10using

namespace

std;

11 vectore[1010

];12

int deg[1010

];13

bool vis[1010

];14

void dfs(int

u) 20}21

}22intmain()

39 dfs(1

);40 flag = true;41

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

42if(!vis[i])

46if

(flag) 52}

53}54if(!flag || temp > 2) puts("no"

);55

else puts("

yes"

);56}57

return0;

58 }

view code

題目42 一筆畫問題

zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一行有兩個正整數p,q p 1000,q 2000 分別表示這個畫中有多少個頂點...

NYOJ 42 一筆畫問題

快有乙個禮拜沒寫過部落格了,資料結構裡面的演算法太多,經典題目就那麼點,做一道少一道,因為自己學,所以花了很多時間來理解。不扯了。思路 簡單的尤拉迴路,判斷是否能夠一筆畫就在於各個點是否連通,判斷是否連通可以用並查集來做。而且節點為奇點個數為0或者為2才能一筆畫。include includeint...

NYOJ 42 一筆畫問題

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