HDU 1253 勝利大逃亡 三維廣搜

2021-06-05 17:04:39 字數 946 閱讀 3933

解題思路:

簡單的三維廣搜,把握好座標和陣列的關係。

用了輸入外掛程式,然後加了幾個小優化:

1.曼哈頓距離優化。

2.終點如果不能走,直接結束-1.

做了這題,對廣搜又有了一點認識。

1.首先廣搜是對每乙個點只搜尋一次,每次搜尋乙個點後就不再走。所以不需要像以前那樣判斷是否已經入隊。

2.搜尋時候要加上邊界,這樣就不用很多判斷了。(一般都是用0做邊界)

3.廣搜的佇列自己寫比較快,用陣列模擬一下就可以了。

4.廣搜的層數用乙個結構體來儲存,每次入隊時候,說明層數要在這個點的基礎上+1層。

**如下:

#include#include#include#include#includeusing namespace std;

const int n = 55;

const int dir[6][3] = , , , , , };

struct node

que[50000];

int maze[n][n][n];

int a, b, c, t;

int num;

int head, tail;

int scan()

res = ch - '0' ;

while( ( ch = getchar() ) >= '0' && ch <= '9' )

res = res * 10 + ( ch - '0' ) ;

return res ;

}int bfs()

} }return -1;

}int main()

if(maze[a][b][c] == 0 || num < a + b + c - 3) //終點無法走

printf("%d\n", bfs());

} return 0;

}

HDU 1253 勝利大逃亡(三維搜尋)

description ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個a b c的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位置,現在知道魔王...

HDU 1253 勝利大逃亡(廣搜)

problem description ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個abc的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位置,...

hdu 1253 勝利大逃亡(三維bfs 剪枝)

problem description ignatius被魔王抓走了,有一天魔王出差去了,這可是ignatius逃亡的好機會.魔王住在乙個城堡裡,城堡是乙個a b c的立方體,可以被表示成a個b c的矩陣,剛開始ignatius被關在 0,0,0 的位置,離開城堡的門在 a 1,b 1,c 1 的位...