時間限制: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 9view code#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 }
題目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 表示測試資料的組數。每組測試資料的第一...