poj3984 迷宮問題

2021-06-22 21:58:41 字數 713 閱讀 4761

最近正在學習bfs和dfs,這是acm很重要也很常用的乙個專題,不知道其他acmer怎麼想,也可能是我是個大水,才剛開始學沒多久,做過的題目很少,我覺得深搜和寬搜很難,需要邏輯非常清楚,而且dfs往往還要各種剪枝,so……我還得多做題多見見題型

下面來說這道題,題目意思很明確,迷宮是乙個5x5的二維陣列,現在要求從左上角到右下角找一條最短路線並輸出路線

思路:因為要求輸出路線,所以不能用stl中的queue,而是要自己寫乙個,先將起始位置入佇列

每次從佇列拿出乙個元素,擴充套件其相鄰的4個元素入佇列(要判重),

直到隊頭元素為終點為止。佇列裡的元素記錄了指向父節點(上一步)的指標

**如下

#include#includeusing namespace std;

int map[5][5];

int dx[4]=;

int dy[4]=;

int front=0,rear=1;

struct nodeq[100];

void print(int i)

if(a==4&&b==4) print(front);

} front++;//出隊 }}

int main()

{ int i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

cin>>map[i][j];

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