BFS的应用-走迷宫

//算法竞赛入门经典(刘汝佳) - BFS的应用,走迷宫

# include 
# include 
const int MAXN = 100+10;
int q[MAXN*MAXN];
//走迷宫
int vis[MAXN][MAXN];
int fa[MAXN][MAXN];
int dist[MAXN][MAXN];
int maze[MAXN][MAXN]; 
int last_dir[MAXN][MAXN]; 
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0}; 
int n,m;//m表示一行有多少元素 
char name[4]={'R','L','D','U'}; 
void bfs(int x,int y){
	
	//初始化 
	int front=0,rear=0,d,u;
	u=x*m+y;      
	vis[x][y] = 1;  //标记已经访问过。
	fa[x][y] = u;   //起点的根节点设置为u,循环输出路径的结束条件
	dist[x][y] = 0; //路径长度初始为0.
	q[rear++] = u;  //起点入队列。
	while(front < rear){
		u=q[front++];
		//得到当前节点。 
		x=u/m; y=u%m;
		for(d = 0; d < 4; d++){//分别往四个方向走 
			int nx=x+dx[d],ny=y+dy[d];
			if(nx>=0 && nx=0 && ny/*测试数据

6 5

7

0 2

1 1

2 1

3 1

2 3

2 4

4 3

*/ 

你可能感兴趣的:(BFS的应用-走迷宫)