为什么BFS会出问题?
查看原帖
为什么BFS会出问题?
567522
Yuzilihhh楼主2022/7/22 15:23

废话不说,直接上代码

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[501][501];
int x[4]={0,0,1,-1},y[4]={-1,1,0,0};
int sx,sy,ex,ey;
bool v[501][501];
string bfs()
{
	queue<int> qx,qy;
	qx.push(sx);
	qy.push(sy);
	v[sx][sy]=true;
	while(!qx.empty())
	{
		if(qx.front()==ex&&qy.front()==ey)return "Yes";
		for(int i=0;i<4;++i)
		{
			int dx=qx.front()+x[i],dy=qy.front()+y[i];
			if(dx>0&&dy>0&&dx<=n&&dy<=m&&!v[dx][dy]&&a[dx][dy]=='.')
			{
				qx.push(dx);
				qy.push(dy);
				v[dx][dy]=true;
			}
		}
		qx.pop();
		qy.pop();
	}
	return "No";
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	{
		for(int j=1;j<=m;++j)
		{
			cin>>a[i][j];
			if(a[i][j]=='s')
			{
				sx=i;
				sy=j;
			}
			if(a[i][j]=='g')
			{
				ex=i;
				ey=j;
			}
		}
	}
	cout<<bfs();
	return 0;
}

为什么WA了,大佬求助!

2022/7/22 15:23
加载中...