關於廣搜的深入理解 BFS模板

2021-09-05 10:18:39 字數 1366 閱讀 4783

關於廣搜,就是乙個寬度搜尋的乙個過程。

我們來理解一下它的搜尋的過程。

來有乙個&代表沒有搜尋的地方,0代表搜尋過的地方。

比如:&&&0&

第一步:

&&&0&

&&000

&&&0&

第二步:

&&&0&

&&000

&0000

&&000

你可以看得出來,這個過程,就是如同病毒擴散一樣,每乙個搜尋到的新的點,都可以作為新搜尋點,搜尋點可以有四個方向。

直到搜尋結束。

理解了過程,我們來處理學習bfs的搜尋**:

經典廣搜題

看了這個部落格:

就可以大概理解清楚搜尋題目,以及裡面**的解釋;

然後下面我們給出乙個模板:

第乙個是通常的乙個做法:

第二個是乙個多點同時進行的搜尋過程;

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

int dis[4][2]= ;

struct point

;int bfs(point s,point e,int map[9][9])//}}

}int main()

; scanf("%d%d%d%d",&s.x,&s.y,&e.x,&e.y);

printf("%d\n",bfs(s,e,map));

}return 0;

}

#include#include#include#include#include#include#define pi acos(-1.0)

#define maxn 0x3f3f3f3f

#define minn 0xc0c0c0c0

using namespace std;

typedef long long ll;

const int n=1e3+10;

char s[n][n];

int n,m;

int ans[n][n];

int dis[4][2]= ; //方向

struct node

st,en;

queueq;

int judge()//判斷條件

return 0;

}void bfs()

}}int main()

memset(ans,-1,sizeof(ans));

for(int i=0;i}

}bfs();

for(int i=0;iprintf("\n");

}return 0;

}

bfs 廣搜 模板

廣度優先搜尋演算法 breadth first search 又譯作寬度優先搜尋,或橫向優先搜尋,簡稱bfs,是一種圖形搜尋演算法。簡單的說,bfs是從根節點開始,沿著樹的寬度遍歷樹的節點。因為所有節點都必須被儲存,因此bfs的空間複雜度為 o v e 其中 v 是節點的數目,而 e 是圖中邊的數目...

深入理解模板1

1,模版引數可以有三種型別 1 型別 2 編譯時常量 3 其他模版.2,型別 include include using namespace std template class stack int main 3,編譯時常量 include include using namespace std t...

bfs 廣搜 馬的遍歷

includeusing namespace std int dirx 8 int diry 8 const int n 405 int dp n n int n,m,x,y int new x,new y bool vst n n 訪問標記 queuevis bfs佇列 bool checksta...