解救人質 BFS模板(迷宮問題)

2022-01-20 00:55:11 字數 1284 閱讀 8196

和上個dfs的問題一樣,這次用bfs的思想,bfs沒有像dfs那樣專門有個step累加,是靠佇列思想實現,更像一群路徑競速,最快的到達後,就break輸出了

#include struct node

;int main()

; int book[51][51]=;

//定義乙個用於表示走的方向的陣列

int next[4][2]=,,,};

int head,tail;

int i,j,k,n,m,start_x,start_y,p,q,tx,ty,flag;

scanf("%d %d",&n,&m);

for(i=1;i<=n;i++)

for(j=1;j<=m;j++)

scanf("%d",&a[i][j]);

scanf("%d %d %d %d",&start_x,&start_y,&p,&q);

//佇列初始化

head=1;

tail=1;

//往佇列插入迷宮入口座標

que[tail].x=start_x;

que[tail].y=start_y;

que[tail].f=0;

que[tail].s=0;

tail++;

book[start_x][start_y]=1;

flag=0;//用來標記是否到達目標點

解救人質(BFS)

不同於由遞迴生成的深度優先搜尋,廣度優先搜尋 又叫寬度優先搜尋 使用的是 一層一層 擴充套件的方法。問題1 解救人質 這裡使用乙個佇列來模擬搜尋的過程struct note struct note que 2501 地圖大小不超過50 50,因此佇列擴充套件不會超過2500個。int head,ta...

bfs迷宮問題模板

bfs一般用於求迷宮起點到終點的最短距離,原因是迷宮各個方向權值相等 include include include include define n 50 using namespace std struct point point start point p queueq int m,n int...

迷宮問題bfs

迷宮問題 採用佇列的廣度優先遍歷 bfs 思想是從乙個頂點v0開始,輻射狀地優先遍歷其周圍較廣的區域 找到的解為最優解 include define m 8 define n 8 define maxsize 1000 typedef struct box typedef struct qutype...