re玄关
查看原帖
re玄关
1053122
shy_lihui楼主2024/8/31 22:11
#include<bits/stdc++.h>
using namespace std;

struct xy
{
	int x;
	int y;
};

int f[105][105];

int dx[12]={0,0,1,-1};
int dy[12]={1,-1,0,0};

int n; 

int bfs(int x,int y)
{
	queue<xy> q;
	xy noww,nextt;
	noww.x=x;
	noww.y=y;

	f[x][y]=1;
	q.push(noww);
	while(!q.empty())
	{
		noww=q.front();
		q.pop();
		
		for(int i=0;i<4;i++)
		{
			nextt.x=noww.x+dx[i];
			nextt.y=noww.y+dy[i];
			if(nextt.x>=1&&nextt.x<=n&&nextt.y>=1&&nextt.y<=n&&!f[nextt.x][nextt.y])
			{
				f[nextt.x][nextt.y]=2;
				q.push(nextt);
			}
		}
	}
}
int main()
{
	for(int i=0;i<=31;i++)
	{
		f[i][0]=0;
		f[i][31]=0;
		f[31][i]=0;
		f[0][i]=0;
	}
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>f[i][j];
		}
	}
	bfs(0,0);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(f[i][j]==2)
			{
				cout<<"0 ";
			}
			else if(f[i][j]==0)
			{
				cout<<"2 ";
			}
			else
			{
				cout<<"1 ";
			}
		}
		cout<<'\n';
	}
	return 0;
}
2024/8/31 22:11
加载中...