bfs
来源:互联网 发布:海岛奇兵极冻先锋数据 编辑:程序博客网 时间:2024/06/16 04:10
#include <iostream>
#include<queue>
using namespace std;
const int maxn=100+5;
const int INF=1000000000;
int sy,sx,gx,gy;
int d[maxn][maxn];
char maze[maxn][maxn];
int m,n;
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
typedef pair<int,int> P;
int bfs()
{
queue<P> que;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
d[i][j]=INF;
que.push(P(sx,sy));
d[sx][sy]=0;
while(que.size())
{
P p=que.front();
que.pop();
if(p.first==gx&&p.second==gy)
break;
for(int i=0;i<4;i++)
{
int nx=p.first+dx[i],ny=p.second+dy[i];
if(0<=nx&&ny>=0&&nx<n&&ny<m&&maze[nx][ny]!='#'&&d[nx][ny]==INF)
{
que.push(P(nx,ny));
d[nx][ny]=d[p.first][p.second]+1;
}
}
}
return d[gx][gy];
}
void solve()
{
int res=bfs();
cout<<res<<endl;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>maze[i][j];
if(maze[i][j]=='S')
{
sx=i;
sy=j;
}
if(maze[i][j]=='G')
{
gx=i;gy=j;
}
}
solve();
return 0;
}
#include<queue>
using namespace std;
const int maxn=100+5;
const int INF=1000000000;
int sy,sx,gx,gy;
int d[maxn][maxn];
char maze[maxn][maxn];
int m,n;
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
typedef pair<int,int> P;
int bfs()
{
queue<P> que;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
d[i][j]=INF;
que.push(P(sx,sy));
d[sx][sy]=0;
while(que.size())
{
P p=que.front();
que.pop();
if(p.first==gx&&p.second==gy)
break;
for(int i=0;i<4;i++)
{
int nx=p.first+dx[i],ny=p.second+dy[i];
if(0<=nx&&ny>=0&&nx<n&&ny<m&&maze[nx][ny]!='#'&&d[nx][ny]==INF)
{
que.push(P(nx,ny));
d[nx][ny]=d[p.first][p.second]+1;
}
}
}
return d[gx][gy];
}
void solve()
{
int res=bfs();
cout<<res<<endl;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>maze[i][j];
if(maze[i][j]=='S')
{
sx=i;
sy=j;
}
if(maze[i][j]=='G')
{
gx=i;gy=j;
}
}
solve();
return 0;
}
0 0
- BFS
- bfs
- BFS
- BFS
- bfs
- BFS
- bfs
- BFS
- BFS
- bfs
- BFS
- BFS
- BFS
- BFS
- BFS
- bfs
- BFS
- BFS
- Hive中 Oder by 、sort by、distribute by 和 cluster by
- 魔术方法和魔术常量
- grunt构建
- C++关键点总结系列-4
- mac vim 添加颜色
- bfs
- 代码大全(6)之数据类型
- Win7 Qt4.8.5+QtCreator2.8.0+mingw配置过程
- 多版本并发控制(MVCC)在分布式系统中的应用
- Oracle基本数据库操作
- Longest Common Prefix
- tensorflow学习笔记十一:ubuntu16.04下安装TensorFlow(GPU加速)----详细图文教程
- 优秀的程序员
- 二叉树遍历