最近有種少年痴呆的感覺,停好幾次車然後每次走的時候,發現自行車不見了,後來在同伴驚愕與無語的表情中想起,原來是停到別的地方去了,但是還好,這幾次欠的飯錢準時還了,哈哈,今天把這道入門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...