九度 題目1027 尤拉迴路

2021-06-20 12:25:21 字數 919 閱讀 7180

題目描述:尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?

輸入:測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n ( 1 < n < 1000 )和邊數m;隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個節點的編號(節點從1到n編號)。當n為0時輸入結束。

輸出:每個測試用例的輸出佔一行,若尤拉迴路存在則輸出1,否則輸出0。

樣例輸入:

3 3

1 21 3

2 33 2

1 22 3

0

樣例輸出:

1

0

分析:

一上來我直接用遞迴暴搜,結果超時:

#include #include #include #define max 1005

int n,m;

int a,b;

int map[max][max];

bool vis[max];

bool dfs(int k,int n)

for(int i=1;i<=n;i++)

}return false;

}int main()

void make(int x,int y)//將x與y合併

int main()

int cnt = 0; //集合的個數,等於1才滿足尤拉迴路

int flag = 1;

for(int i=1;i<=n;++i)

if(cnt!=1) flag=0;

cout<

九度oj 題目1027 尤拉迴路

題目描述 尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個圖,問是否存在尤拉迴路?輸入 測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分別是節點數n 1 n 1000 和邊數m 隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩...

題目1027 尤拉迴路 學習

尤拉迴路 就是 定理 如果g是連通圖,則g是尤拉圖當且僅當g的所有頂點都是偶頂點 也就是說 先用並查集 再看偶頂點 所以,得從尤拉迴路的性質出發,1 尤拉迴路必須能從1一直能連線到n的連通圖,所以用並查集的話,就只能有1個集合 2 尤拉迴路 有向圖 所有的頂點出度 入度。無向圖 所有頂點都是偶數度。...

OJ 1027 尤拉迴路

include using namespace std int set 1001 int degree 1001 void init int n int find int x void unionset int x,int y void func int count 0 bool flag2 tru...