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