哈密爾頓環

2021-10-04 23:43:30 字數 743 閱讀 4468

定義:

指的是不重複走過所有的點。並且最後還能回到起點的路。

簡單的深度優先搜尋就能求出一張圖中所有的哈密爾頓環

1 #include 2 #include 3 #include 4

5using

namespace std;

6int start, length,x,n;

7const

int maxn = 101;

8bool visited[maxn], v1[maxn];

9int ans[maxn], num[maxn];

10int g[maxn][maxn];

11void print()

12 17 cout << ans[length] << endl;

18 }

1920

void dfs(int last, int i)//用陣列模擬鄰接表儲存,訪問點i,last標是上乙個訪問的點。

21 34

if (!visited[g[i][j]]) dfs[i] = false;

35 }

36 length--;

37 visited[i] = false;//這裡是回溯

38 }

3940

int main()

41 51 }

52return 0;

53 }

哈密爾頓環

尤拉迴路是指不重複的走過所有路徑的迴路,而哈密爾頓環是指不重複地走過所有的點,並且最後還能回到起點的迴路。使用簡單的深度優先搜尋,就能求出一張圖中所有的哈密爾頓環,下面給出一段參考程式 include include include include include include include u...

哈密爾頓環

尤拉迴路是指不重複地走過所有路徑的迴路,而哈密爾頓環是指不重複地走過所有的點,並且最後還能回到起點的迴路。1 include2 include3 using namespace std 4int num 1001 5 bool vis 1001 v1 1001 6 int maps 1001 100...

哈密爾頓環問題

哈密爾頓環 尤拉迴路是指不重複地走過所有路徑的迴路,而哈密爾頓環是指不重複地走過所有的點,並且最後還能回到起點的迴路。1 include2 include3 using namespace std 4int num 10001 求乙個點能過到達的邊的數量 5int map 1001 1001 6 i...