BNU 1054 - 走迷宫1
2012-08-17 21:20
169 查看
题目地址: http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=1054
bfs 纯新手题 。。。 额,我放上来干嘛?
bfs 纯新手题 。。。 额,我放上来干嘛?
#include<stdio.h> #include<string.h> struct Node{ int x,y; Node(int a=0,int b=0){x=a,y=b;} }que[10100]; int n,m; const int fx[]={1,-1,0,0}; const int fy[]={0,0,1,-1}; char mp[102][102]; int vis[102][102]; int bfs(){ int s,t,i,j,x,y,nx,ny; memset(vis,-1,sizeof(vis)); for(i=0;i<n;i++){ scanf("%s",mp[i]); for(j=0;j<m;j++) if(mp[i][j]=='S') x=i,y=j; } que[s=t=0]=Node(x,y); vis[x][y]=0; while(s<=t){ x=que[s].x; y=que[s].y; if(mp[x][y]=='T') return vis[x][y]; s++; for(i=0;i<4;i++){ nx=x+fx[i]; ny=y+fy[i]; if(nx<0 || nx>=n || ny<0 || ny>=m) continue; if(mp[nx][ny]=='*' || vis[nx][ny]!=-1) continue; vis[nx][ny]=vis[x][y]+1; que[++t]=Node(nx,ny); } } return -1; } int main(){ while(~scanf("%d%d",&n,&m)) printf("%d\n",bfs()); return 0; }
相关文章推荐
- 走迷宫1 bnu 1054
- bnu1054 杨辉三角 C语言版
- BNU 走迷宫2
- bnu1055 走迷宫2
- HDU 1728 逃离迷宫 单方向BFS 或者DFS加剪枝
- 迷宫寻宝(一)
- H - 迷宫问题 POJ3984 (BFS+DFS)
- [Swust OJ 409]--小鼠迷宫问题(BFS+记忆化搜索)
- POJ9384 迷宫(基金会BFS)
- Unity3D实现立体迷宫寻宝
- 错误代码: 1054 Unknown column 't.createUsrId' in 'group statement'
- 迷宫算法及数据结构分析(by WIzaRD_ssc)
- [HDOJ 4524] 郑厂长系列故事――逃离迷宫
- HDOJ 1272 小希的迷宫(并查集)
- [BZOJ1054][HAOI2008]移动玩具
- Word Maze 单词迷宫
- HDU 1269 迷宫城堡(求是否只有一个强连通分量)
- POJ 1463 && HDU 1054 Strategic Game(树形DP)
- 深搜迷宫
- 迷宫问题(栈解决)--2015年8月9日19:23:23v1.0版