例1. hdu 1548
題意有人想乘電梯從
a樓到達b樓,電梯
只有兩種情況,上和下
,給定電梯的上下固定樓
,求從a到達b的最少移動次數? -**hdu1548
每層電梯有乙個數字表示該層可以移動的層數 **
#include
#include
#include
#define n 201
using namespace std;
int xx[n],v[n];
int n,a,b;
struct node
;void bfs()
y.floor=x.floor-xx[x.floor];
y.step=x.step+1;
if(y.floor>0&&y.floor<=n&&!v[y.floor])
}cout<<-1<>n>>a>>b&&(n||a||b))
bfs();
}return 0;
}思路:bfs 用佇列,用乙個陣列標記是否到過該層
例2 hdu 1372
象棋裡的馬從a到達
b的最小步數
-**hdu
1372 **
#include
#include
#include
#define n 10
using namespace std;
char map[n][n];
int v[n][n];
int dic[8][2]=;
char q,w,e,r;
int a,s,d,f;
struct node
;void bfs()}}
return;
}int main()
return 0;}
思路 bfs 佇列 注意馬有八個方向
廣度優先搜尋(二)
例5 8數碼難題 問題描述 在 3 3 的棋盤上,擺有八個棋子,每個棋子上標有 1 至 8 的某一數字。棋盤中留有乙個空格。空格周圍的棋子可以移到空格中。要求解的 問題是,給出一種初始布局 初始狀態 和目標布局 目標狀態 找到一種移動的方法,實現從初始布局到目標布局的轉變。輸入格式 輸入由兩行組成,...
搜尋 廣度優先搜尋
廣度優先搜尋一層一層地進行遍歷,每層遍歷都是以上一層遍歷的結果作為起點,遍歷乙個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。class solution,int shortestpathbinarymatrix vectorint grid length return 1 cl...
廣度優先搜尋
include include include include using namespace std struct node 圖頂點結構定義 typedef struct node graph 圖形的結構新型態 struct node head 9 圖形頂點陣列 int visited 9 遍歷標...