一筆畫問題比較的清晰,學過圖論的都知道尤拉迴路是經過每一條邊只一次能夠經過全部的點。
判斷能否一筆畫只需要兩點符合就行了,一是通路,可以用並查集判斷;二是節點為奇數的點的個數為0或者是2,。滿足上面的兩點就可以判斷是否是一筆畫圖。
並查集不用多說,都有模板,判斷點的地方可以在輸入的時候建立陣列儲存下來節點個數就可以了。
#include
#include
#include
#include
using
namespace
std;
int n,m;
int father[2010];
int num[2010];
void makeset(int n)
int find_root(int x)
return root;
}void union(int x,int y)
}int main()
for(int i=1;i<=n;i++)
if(flag==0)
cout
<<"no"
NYOJ 42 一筆畫問題
快有乙個禮拜沒寫過部落格了,資料結構裡面的演算法太多,經典題目就那麼點,做一道少一道,因為自己學,所以花了很多時間來理解。不扯了。思路 簡單的尤拉迴路,判斷是否能夠一筆畫就在於各個點是否連通,判斷是否連通可以用並查集來做。而且節點為奇點個數為0或者為2才能一筆畫。include includeint...
NYOJ 42 一筆畫問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入 第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一...
NYOJ 42 一筆畫問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一行...