废话不说,直接上代码
#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了,大佬求助!