为什么会爆RE啊?
查看原帖
为什么会爆RE啊?
1420524
timeset0楼主2025/1/17 22:34
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

const int N=55;
typedef pair<int,int> pii;

int n,m,sy,sx,gy,gx;
char g[N][N];
int d[N][N];
pii q[N*N];

int bfs()
{
	int tt=0,hh=0;
	q[0]={sy,sx};
	memset(d,-1,sizeof d);
	d[sy][sx]=0;
	int dy[4]={-1,0,1,0},dx[4]={0,1,0,-1};
	while(1)
	{
		auto test=q[tt];
		if (test.first==gy&&test.second==gx)
		break;
		auto t=q[hh++];
		for (int i=0;i<4;i++)
		{
			int y=t.first+dy[i],x=t.second+dx[i];
			
			if (g[y][x]=='.'&&d[y][x]==-1)
			{
				d[y][x]=d[t.first][t.second]+1;
				q[++tt]={y,x};
			}
			
		}
	}
	return d[gy][gx];
}

int main()
{
	cin>>n>>m;
	cin>>sy>>sx;
	cin>>gy>>gx;
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++)
			cin>>g[i][j];

	
	cout<<bfs()<<endl;
	return 0;
}

请大佬救救蒟蒻

2025/1/17 22:34
加载中...