POJ 3984 迷宮問題

2022-02-17 01:04:43 字數 789 閱讀 8838

這題是bfs的基礎性題目,但是基礎才顯得很重要。

題目中的要求是輸出每乙個我們走過的點,所以我們每次記錄下它的上乙個節點是誰就行了。

但是我們因此就不能再使用佇列了,我們開闢乙個一維陣列就行了,因為迷宮的大小是5*5的,所以我們直接開乙個一維陣列,然後模擬一下佇列的進出就行了。

這個題比較坑的一點是它的輸出圓括號裡面,逗號後面有個空格,一定要輸出,不然它會說,你的答案幾乎正確,但是格式不對。

#include #include using namespace std;

struct road ;

const int maxn=1000;

road q[maxn];

bool maze[5][5];

bool visited[5][5];

int head=0,tail=0;

int d[4][2]=,,,};

void bfs()}}

head++;//head 在此加加,不會出現死迴圈

}}int main()

}memset(visited,0,sizeof(visited));

road a=;

q[tail++]=a;

visited[0][0]=1;

bfs();

int i=0;

while (q[head].f>=0)

for (int j=i-1;j>=0;j--)

cout<<"("<<4<<", "<<4<<")"

}

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表示可以走的路,只能橫著走或豎著走,...