題目大意:中文題。。。定義乙個二維陣列:
它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。
解題思路:建立乙個模擬佇列的結構體,其中包括x,y,pre。pre用於儲存前一步的位置(結構體陣列的位)。全域性變數,標記陣列,頭尾位置。bfs先將起點讀入,pre為-1。然後迴圈將起點上下左右判斷是否能移動,能移動存入結構體,pre為這一次讀入的位置的的陣列位置(未出列時的頭)。當移動後的位置為終點時退出。輸出時dfs,如果pre未=-1,表示沒到起點,進入下一層,直到到起點,輸出,回上一層輸出。
ac**:
#include
using
namespace
std;
struct nodeno[50];
int dx[4]=, dy[4]=;
int front, rear, a[5][5], vis[5][5];
void
bfs()
no[0].x = no[0].y = 0;
no[0].pre = -1;
rear++;
while (front < rear)
} }
}void
prin
(node n)
}intmain
()return
0;}
POJ3984 迷宮問題
題目 迷宮問題 time limit 1000ms memory limit 65536k total submissions 3183 accepted 1861 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎...
POJ 3984 迷宮問題
一道比較簡單的bfs題 include include include include define max 6 using namespace std int map max max px max max py max max int movex 4 movey 4 bool vis max ma...
POJ 3984 迷宮問題
迷宮問題 time limit 1000ms memory limit 65536k total submissions 7047 accepted 4123 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,...