DFS專攻 HDU 2128 哈密頓繞行世界問題

2021-06-19 13:12:53 字數 466 閱讀 8614

又一道需要dfs回溯的好題,比較簡單,不過現在也正好用來練習dfs,等把簡單的都弄會了,再搞難的……go on!!!

#include#include#include#include#include#include#include#include#include#include#include#define mem(a,b) memset(a,b,sizeof(a))

typedef long long ll;

using namespace std;

char a[22][4],d[22],visit[22],m,k; //a存路徑,d存搜尋過程的路徑,以便輸出,visit標記哪條路走過了……

void dfs(int j,int t)

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

}}int main()

return 0;

}

hdu2128 哈密頓繞行世界問題

hdu2128 使用dfs搜尋一下就能過,對於需要字典序從小到大排序,我們可以預處理給出的邊。將與第i個點相連的邊按照從小到大的順序排好。由於dfs時是從0到n的,這樣就保證了字典序從小到大。還有一點注意的是給定的m點在一開始就被標記了,當再次訪問到它的時候step必須等於19才能訪問。includ...

HDU 2181哈密頓繞行世界(DFS)

題解 用乙個二維陣列 way i 3 儲存i點能到達所有 地方,然後在dfs的擴充套件地方就去遍歷 後面那個3就好了 include using namespace std int way 22 5 儲存路徑 int vis 22 標記陣列 int path 100 記錄路徑 int m,k voi...

HDU 2181 哈密頓繞行世界問題 DFS

題意 給出乙個十二面體,它的每個頂點是乙個城市,從乙個城市m出發並回到m,輸出所有可行的路徑 先把邊記錄下來,再深搜 1 include2 include3 include4 include 5 include6 include7 include8 include 9 include10 inclu...