哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。
可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉(leonhard euler,1707—1783)最終解決了這個問題,並由此創立了拓撲學。
這個問題如今可以描述為判斷尤拉迴路是否存在的問題。尤拉迴路是指不令筆離開紙面,可畫過圖中每條邊僅一次,且可以回到起點的一條迴路。現給定乙個無向圖,問是否存在尤拉迴路?
輸入格式:
輸入第一行給出兩個正整數,分別是節點數n (1≤n≤1000)和邊數m;隨後的m行對應m條邊,每行給出一對正整數,分別是該條邊直接連通的兩個節點的編號(節點從1到n編號)。
輸出格式:
若尤拉迴路存在則輸出1,否則輸出0。
輸入樣例1:
6 10
1 22 3
3 14 5
5 66 4
1 41 6
3 43 6
輸出樣例1:
1輸入樣例2:
5 81 2
1 32 3
2 42 5
5 35 4
3 4輸出樣例2:
0解答:第一次做是直接暴力遍歷(假裝人在手動的走,不斷遞迴,每一條路徑),後來提交發現,超時2個點。。。。。。。。然後才加以改動,後來發現其中只要判斷奇點數和圖是否連通,就解決了
不超時的正確解答:
#include#include#include#define max 1001
int n;
int matrix[max][max]=};
int start[max]=;
int isv[max]=;
void islink(int pos);
int main()
for(i=0; i超時的遞迴遍歷做法是這樣的:
#include#include#include#define max 1001
int matrix[max][max]=};
int n,times=0;
void ergodic(int y,int end);
int main()
for(i=0; iprintf("0\n");
return 0;
}void ergodic(int y,int end)
int i,j,flag;
if(times==2)}}
if(flag)else
}for(i=0; i}
}
7 32 哥尼斯堡的「七橋問題」(25 分)
7 87 哥尼斯堡的 七橋問題 25 分 哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉 leonhard euler,1707 1783 最終解決了這個問題,並由此創立了拓撲學。這個問題如今可以描述為判斷尤...
哥尼斯堡的「七橋問題」 25 分 DFS
哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉 leonhard euler,1707 1783 最終解決了這個問題,並由此創立了拓撲學。這個問題如今可以描述為判斷尤拉迴路是否存在的問題。尤拉迴路是指不令筆離...
7 1 哥尼斯堡的「七橋問題」 (25 分)
哥尼斯堡是位於普累格河上的一座城市,它包含兩個島嶼及連線它們的七座橋,如下圖所示。可否走過這樣的七座橋,而且每橋只走過一次?瑞士數學家尤拉 leonhard euler,1707 1783 最終解決了這個問題,並由此創立了拓撲學。這個問題如今可以描述為判斷尤拉迴路是否存在的問題。尤拉迴路是指不令筆離...