MLE了求助!!!
查看原帖
MLE了求助!!!
1307813
Sun_Roast楼主2024/5/24 11:44
#include<bits/stdc++.h>
using namespace std;
int d[8][2]={{1,2},{2,1},{-1,2},{-2,1},{1,-2},{2,-1},{-1,-2},{-2,-1}};
int m,n;
int mapx[1145][1145];
bool jude[1145][1145];
void bfs(int x,int y)
{
	queue<pair<int,int> >q;
	q.push({x,y});
	while(q.size())
	{
		pair<int,int>t=q.front();q.pop();
		int tx=t.first,ty=t.second;
		jude[tx][ty]=true;
		for(int i=0;i<8;i++)
		{
			int nx=tx+d[i][0],ny=ty+d[i][1];
			if(!jude[nx][ny]&&nx>=1&&nx<=n&&ny>=1&&ny<=m)
			{
				mapx[nx][ny]=mapx[tx][ty]+1;
				q.push({nx,ny});
			}
		}
	}
}
int main()
{
	int x,y;
	cin>>n>>m>>x>>y;
	mapx[x][y]=0;
	bfs(x,y);
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(!mapx[i][j])
				mapx[i][j]=-1;
	mapx[x][y]=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			cout<<mapx[i][j]<<" ";
		cout<<endl;
	}
	return 0;
 }
2024/5/24 11:44
加载中...