为什么会RE
查看原帖
为什么会RE
379113
dtrthg楼主2022/1/29 15:30

rt呜呜呜

#include <iostream>
using namespace std;
const int Maxn=2000+10;
int n,m;
int sx=0,sy=0;
string s[Maxn];
bool vis[Maxn][Maxn];
int dx[]={1,0,-1,0};
int dy[]={0,1,0,-1};
struct Stu
{
	int x,y,cnt;
}a[Maxn*Maxn];
void bfs()
{
	int h=1,t=2;
	vis[sx][sy]=true;
	a[1].x=sx;a[1].y=sy;
	a[1].cnt=0;
	while(h<t)
	{
		if(s[a[h].x][a[h].y]=='d')
		{
			cout<<a[h].cnt<<endl;
			return ;
		}
		for(int i=0;i<4;i++)
		{
			int nx=a[h].x+dx[i],ny=a[h].y+dy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&s[nx][ny]!='#')
			{
				if(vis[nx][ny]==false)
				{
					vis[nx][ny]=true;
					a[t].x=nx; a[t].y=ny;
					a[t].cnt=a[h].cnt+1;
					t++;
				}
			}
		}
		h++;
	}
	cout<<"No Way!"<<endl;
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>s[i][j];
			if(s[i][j]=='m') sx=i,sy=j;
		}
	}
	bfs();
	return 0;
}
2022/1/29 15:30
加载中...