初入手搜尋,慢慢來,學演算法不能著急
本題從某一點開始廣搜.就是把上下左右可能的點都遍歷,看看有沒有合適的點,如果有,就放入佇列,然後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...