BFS算法40分求助!
  • 板块P1605 迷宫
  • 楼主Lipail
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/11/15 17:52
  • 上次更新2023/11/5 07:59:32
查看原帖
BFS算法40分求助!
291606
Lipail楼主2020/11/15 17:52
#include<bits/stdc++.h>
using namespace std;
int num;
int n,m,t;
int sx,sy,ex,ey;
int dx[5]={0,1,-1,0,0};
int dy[5]={0,0,0,-1,1};
struct mg{
	int x;
	int y;
};
queue<mg> q;
int s[8][9];
int bfs(int xx,int yy)
{
	s[xx][yy]=1;
	mg temp,now;
	now.x=xx;
	now.y=yy;
	q.push(now);
	while(!(q.empty()))
	{
		for(int i=1;i<=4;++i)
		{
			temp.x=q.front().x+dx[i];
			temp.y=q.front().y+dy[i];
			if(temp.x<=m&&temp.x>=1&&temp.y<=n&&temp.y>=1&&!(s[temp.x][temp.y]))
			{
				s[temp.x][temp.y]=1;
				q.push(temp);
				if(temp.x==ex&&temp.y==ey)
				{
					num++;
				}
			}
		}
		q.pop();
	}
}
int main()
{
	cin>>n>>m>>t;
	scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
	for(int i=1,a,b;i<=t;++i)
	{
		cin>>a>>b;
		s[a][b]=1;
	}
	bfs(sx,sy);
	printf("%d",num);
	return 0;
}
2020/11/15 17:52
加载中...