nyoj 58 最小步數(bfs)

2021-07-06 02:45:07 字數 560 閱讀 2444

初入手搜尋,慢慢來,學演算法不能著急

本題從某一點開始廣搜.就是把上下左右可能的點都遍歷,看看有沒有合適的點,如果有,就放入佇列,然後4個方向判斷完成後,再從隊首取出乙個元素,接著進行,注意:當隊列為空時,說明搜尋結束仍然沒有找到目標點。 這裡的廣搜和樹的層序遍歷極為相似,大家可以先看下樹的層序建立,層序遍歷,思路一致。

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

int map[9][9]=,

, ,, ,

, , ,

};int vis[9][9];

int fx[4][2]=;

struct node;

int bfs(int a,int b,int c,int d);

struct node next;

queueq;

q.push(start);

while(!q.empty())}}

}}int main(void)

}

nyoj 58 最小步數

兩份 都是我寫的,前後隔了很久.還好沒有忘記bfs的基本思路 圖一表示起點,首先起點入隊,佇列中有 x1,y1 while q.empty 這個迴圈中出隊,圖二檢視出隊的這個點 此時是起點 四個方向,如果沒走過就入隊那麼,現在佇列中就有 x2,y2 x3,y3 然後就一次進行上面的操作 最後就搜尋到...

nyoj 58 最小步數

難度 4 描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,1,0,0,...

nyoj 58 最小步數

描述 這有乙個迷宮,有0 8行和0 8列 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1...