7 3 七橋問題

2021-08-20 01:18:51 字數 1375 閱讀 7249

小知識(ゝω・)

尤拉迴路:如果圖g中的乙個路徑包括每個邊恰好一次,則該路徑稱為尤拉路徑。

如果乙個迴路是尤拉路徑,則稱為尤拉迴路。

具有尤拉迴路的圖稱為尤拉圖(簡稱e圖)。具有尤拉路徑但不具有尤拉迴路的圖稱為半尤拉圖。

所有頂點的度均為偶數的任何連通圖必然有尤拉迴路。

哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉(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 6

1
5 8

1 21 3

2 32 4

2 55 3

5 43 4

0

**:

#include#include#include#includeusing namespace std;

int flag[1010];

int g[1010][1010];

int path[1010];

int count = 0;

void dfs(int point,int n)

} return;

}//bfs不需要用遞迴,所以速度比dfs快

void bfs(int point, int n)

} }}//bool judge(int n, int flag)

// }

// return true;

//}bool even(int path, int n)

} return true;

}int main()

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

flag[1] = 1;

if (!even(path, n))

dfs(1, n);

if (count == n)

else

return 0;

}

《演算法》七橋問題

萊昂哈德 尤拉在1735年提出,並沒有方法能圓滿解決這個問題,他更在第二年發表在 柯尼斯堡的七橋 中,證明符合條件的走法並不存在,也順帶提出和解決了一筆畫問題 1 這篇 在聖彼得堡科學院發表,成為圖論史上第一篇重要文獻。尤拉把實際的抽象問題簡化為平面上的點與線組合,每一座橋視為一條線,橋所連線的地區...

格尼斯堡七橋問題

拓補學問題集錦 現今的加里寧格勒,舊稱哥尼斯堡,是一座歷史名城。在十 八 十九世紀,那裡是東普魯士的首府,曾經誕生和培育過許多偉大的人物。著名的哲學家,古典唯心主義的創始人康德,終生沒有離開過哥尼斯堡一步 哥城景致迷人,碧波蕩漾的普累格河,橫貫其境。在河的中心有一座美麗的小島。普河的兩條支流,環繞其...

迷之Konigsberg七橋問題

最近在課上聽了一些關於圖論的簡介,雖然對於我現在的知識來說這個有點早了,但是不影響我明白konigsberg七橋問題。這個問題困擾了18世紀的人們很長時間,但是一直沒能得到解決,最後,大數學家男神尤拉出馬,建立了乙個簡單的數學模型,將七橋問題否定了。下面,看看這個七橋問題究竟是什麼?普魯士的koni...