寬度優先搜尋第n遍

2021-09-25 17:15:49 字數 1297 閱讀 2454

最近有種少年痴呆的感覺,停好幾次車然後每次走的時候,發現自行車不見了,後來在同伴驚愕與無語的表情中想起,原來是停到別的地方去了,但是還好,這幾次欠的飯錢準時還了,哈哈,今天把這道入門bfs小題研究的透透的,以後再忘,估計湊幾眼,也能想起來。

***迷宮的最短路徑

給定乙個大小為nm的迷宮。迷宮由通道和牆壁組成,每一步可以向相鄰的上下左右四格的通道移動。請求出從起點到終點所需的最小步數。如果不能到達,輸出「不能走到那裡」。(n,m<=50,起點,終點分別用s,g表示)

輸入樣例:n=5,m=5

#s###

…##.

#.###

…###

…g##

輸出:5****

//簡單bfs,//最短路問題 

#include#include#include#includeusing namespace std;

char maze[50][50];

bool vis[10][10];

int n,m;

int sx,sy;

int ex,ey;

int dir[4][2]= ;

struct node

;void bfs()}}

cout << "不能走到那裡!" << endl;

}int main()

//更新一波

if(maze[i][j]=='g')

} bfs();

}}

昨天下午又大了一遍輸出怎麼搞都是0;今天早上醒來,神清氣爽,一下子就發現了乙個邏輯錯誤

node top;//這個結構題不能定義在判斷語句裡面,否則會出現錯誤

top.x=xx;

top.y=yy;

top.ans=tp.ans+1;

vis[top.x][top.y]=1;

q.push(top);

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

int n,m;

int dir[4][2]=;

char map[10][10];

int vis[10][10];

int sx,sy,ex,ey;

struct node;

node top;

void bfs()

if(map[i][j]=='g')

} bfs();

} return 0;

}

寬度優先搜尋

include using namespace std const int n 700 const int inf 0x3f3f3f3f int dir 10 int n,a,b,ans 1000000 flag 0 int floor n struct node int check node tm...

寬度優先搜尋

寬度優先搜尋演算法 又稱廣度優先搜尋 是最簡便的圖的搜尋演算法之一,這一演算法也是很多重要的圖的演算法的原型。dijkstra單源最短路徑演算法和prim最小生成樹演算法都採用了和寬度優先搜尋類似的思想。其別名又叫bfs,屬於一種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。換句話說...

寬度優先搜尋

寬度優先搜尋也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發探索所有可以到達的狀態。const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pair p char maze max n max m 1 表示迷宮的字串陣列 in...