一筆畫問題
時間限制:3000 ms | 記憶體限制:65535 kb
難度:4
描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。
規定,所有的邊都只能畫一次,不能重複畫。
輸入 第一行只有乙個正整數n(n<=10)表示測試資料的組數。
每組測試資料的第一行有兩個正整數p,q(p<=1000,q<=2000),分別表示這個畫中有多少個頂點和多少條連線。(點的編號從1到p)
隨後的q行,每行有兩個正整數a,b(0 < a , b < p),表示編號為a和b的兩點之間有連線。
輸出 如果存在符合條件的連線,則輸出」yes」,
如果不存在符合條件的連線,輸出」no」。
樣例輸入
2 4 3
1 2
1 3
1 4
4 5
1 2
2 3
1 3
1 4
3 4
樣例輸出
no yes
[分析]
離散數學教材中的定理:無向圖g具有一條尤拉路,當且僅當g是連通的,且有零個或兩個奇數度節點。
(無向圖中『度』就是有幾條線與其連線)
所以就是儲存所有節點的度,然後判斷奇數偶數。
並查集判斷連通性;
一發ac。
[**]
#include
#include
#define max 1005
struct unionfind
void make_set()//初始化
}int find_set(int x)//查
void union_set(int a, int b)//合併
}};int vis[1005];
int main()
int j=0;
for (int i = 1;i <= p;i++)
if ((j == 0 || j == 2) && uf.num[uf.find_set(1)] == p)printf("yes\n");
else
printf("no\n");
}}
nyoj42一筆畫問題(尤拉迴路)
題目解析 此題是尤拉迴路,尤拉迴路滿足的條件 無論是有向圖還是無向圖前提條件都是圖要連通,如果是無向圖需要有0個奇度頂點或者2個奇度頂點,如果是有向圖,在前兩個條件的基礎之上還要附加上乙個條件 乙個奇度頂點入度比出度大1,另乙個奇度頂點出度比入度大1。所以要解決這樣的問題,首先要判斷圖的連通性,在圖...
nyoj42 一筆畫問題 尤拉迴路
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入 第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一...
nyoj42一筆畫問題 尤拉迴路
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 zyc從小就比較喜歡玩一些小遊戲,其中就包括畫一筆畫,他想請你幫他寫乙個程式,判斷乙個圖是否能夠用一筆畫下來。規定,所有的邊都只能畫一次,不能重複畫。輸入第一行只有乙個正整數n n 10 表示測試資料的組數。每組測試資料的第一行...