1250 HH的公尺5 並查集 尤拉迴路

2021-07-07 08:42:36 字數 1327 閱讀 4121



時間限制: 1 sec  

記憶體限制: 128 mb

提交: 101  

解決: 28 [

提交][

狀態][

討論版]

hh新買了一台手機小公尺5,他給自己的新手機設定了乙個高階大氣上檔次的螢幕保護鎖(其實就是乙個9宮鎖屏),保護鎖有乙個特點,就是需要一筆畫下來才能解鎖,hh就在想,如果給定n個點和m條邊,那麼該圖是否可以通過一筆將該圖畫下來呢?他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。 規定,所有的邊都只能畫一次,不能重複畫。

第一行只有乙個正整數t(t<=10)表示測試資料的組數。 每組測試資料的第一行有兩個正整數n,m(n<=1000,m<=2000),分別表示這個畫中有多少個頂點和多少條連線。(點的編號從1到n) 隨後的m行,每行有兩個正整數a,b(0

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

注意輸出不包含引號!2

4 3

1 2

1 3

1 4

4 5

1 2

2 3

1 3

1 4

3 4no

yes尤拉迴路:

從無向圖的乙個節點出發走出一條道路,每條邊恰好經過一次這樣的,這樣的道路稱為「尤拉迴路」(e圖)

在尤拉道路中「進」,「出」是一一對應的(除了起點和終點之外),其他點的「進出」次數應該相等,即除了起點跟終點之外,其他點的度數應該是偶數;

如果乙個圖是無向連通圖,且最多有兩個奇點(度數為奇數),則一定存在尤拉迴路,如果有兩個奇點,必須從乙個奇點出發到另乙個奇點結束,如果不存在奇點,則可以從任意的點出發,必存在尤拉迴路

對於有向圖來說同樣最多只能有兩個點的出度不等於入度,而且必須把其中乙個入度比出度大一的點作為起點,而入度比出度小一的點作為終點,當然忽略圖的方向,圖必須是連通的

#include#include#include#define max 1005

using namespace std;

int map[max][max],visit[max];

int p,q,con;//con用於記錄連通點的個數

int euler()

sum++;

}} if(sum%2)

} return cont;

}int main()

int cont=euler();

if((cont==0 || cont==2) && p==con){

cout<<"yes"<

hpuoj 1250 HH的公尺5 (並查集)

時間限制 1 sec 記憶體限制 128 mb 提交 108 解決 32 提交 狀態 討論版 hh新買了一台手機小公尺5,他給自己的新手機設定了乙個高階大氣上檔次的螢幕保護鎖 其實就是乙個9宮鎖屏 保護鎖有乙個特點,就是需要一筆畫下來才能解鎖,hh就在想,如果給定n個點和m條邊,那麼該圖是否可以通過...

HPU 1250 HH的公尺5 尤拉迴路

時間限制 1 sec 記憶體限制 128 mb 提交 106 解決 30 提交 狀態 討論版 hh新買了一台手機小公尺5,他給自己的新手機設定了乙個高階大氣上檔次的螢幕保護鎖 其實就是乙個9宮鎖屏 保護鎖有乙個特點,就是需要一筆畫下來才能解鎖,hh就在想,如果給定n個點和m條邊,那麼該圖是否可以通過...

尤拉迴路 並查集

時間限制 1 sec 記憶體限制 32 mb 提交 6 解決 5 提交 狀態 討論版 尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n 1 n 1000 和邊數...