哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。
可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉(leonhard euler,1707—1783)最終解決了這個問題,並由此創立了拓撲學。
這個問題如今可以描述為判斷尤拉迴路是否存在的問題。尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個無向圖,問是否存在尤拉迴路?
輸入第一行給出兩個正整數,分別是節點數n (
1≤n≤1000
)和邊數
m;隨後的
m行對應
m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個節點的編號(節點從1到
n編號)。
若尤拉迴路存在則輸出1,否則輸出0。
6 10
1 22 3
3 14 5
5 66 4
1 41 6
3 43 61
5 8
1 21 3
2 32 4
2 55 3
5 43 40
--------------------------------------------
定義:
若圖g中存在這樣一條路徑,使得它恰通過g中每條邊一次,則稱該路徑為
尤拉路徑
。若該路徑是乙個圈,則稱為
尤拉(euler)迴路
。具有尤拉迴路的圖稱為
尤拉圖 (簡稱e圖)。具有尤拉路徑但不具有尤拉迴路的圖稱為半尤拉圖。
尤拉迴路判斷條件:1.該圖是否為連通圖;
2.該圖所有點的度數都為偶數
---------------------------------------------
#include#include#define max 1005
int map[max][max]=;
int visited[max]=;
int connect=0;
int count=0;
int flag=0;
void dfs(int x,int node)
for(i=1;i<=node;++i)
}return;
}int main(void);
int node,n,startx,v1,v2,i,sum=0;
scanf("%d",&node);
scanf("%d",&n);
while(n--)
startx=1;
dfs(startx,node);
if(connect==0)
for(i=1;i<=node;++i)
}printf("1\n");
return 0;
}
哥尼斯堡七橋問題
現在你需要找出走遍7座橋的方法,但是,必須遵守以下條件 1 走過的橋不能再走 2 可以多次經過同一塊陸地 3 可以以任一陸地為起點 4 不需要回到起點 數學家尤拉已經將這個問題作為一筆畫問題解決,這就是圖論的開山鼻祖。在反覆的實驗中,我們注意到了 要通過乙個頂點,這個頂點必須具有2條邊,即 入口邊 ...
哥尼斯堡七橋問題
18世紀著名古典數學問題之一。在哥尼斯堡的乙個公園裡,有七座橋將普雷格爾河中兩個島及島與河岸連線起來 如圖 問是否可能從這四塊陸地中任一塊出發,恰好通過每座橋一次,再回到起點?1736年,29歲的尤拉提交了 哥尼斯堡七橋 的 圓滿解決了這一問題,同時開創了數學新一分支 圖論。尤拉把每一塊陸地考慮成乙...
哥尼斯堡的「七橋問題」
哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉 leonhard euler,1707 1783 最終解決了這個問題,並由此創立了拓撲學。這個問題如今可以描述為判斷尤拉迴路是否存在的問題。尤拉迴路是指不令筆離...