48分,求帮助
查看原帖
48分,求帮助
1057317
yangbowen666楼主2024/7/15 10:03
#include<bits/stdc++.h>
using namespace std;

char c[120][120];

int w,h,n;

int tx[5]={0,0,1,0,-1};
int ty[5]={0,1,0,-1,0};

int a[120][3];

int C=0;

bool f[120][120];

int b=n;

void bfs(int x,int y)
{
	if(x==n||y==n||x==1||y==1)
	{
		for(int i=1;i<=b;i++)
		{
			c[a[i][1]][a[i][2]]='0';
		}
		return ;
	}
	f[x][y]=true;
	b++;
	c[x][y]='2';
	a[b][1]=x;
	a[b][2]=y;
	for(int i=1;i<=4;i++)
	{
		int fx=x+tx[i];
		int fy=y+ty[i];
		if(f[fx][fy]==false&&c[fx][fy]=='0')
		{
			bfs(fx,fy);
		}
	}
}
int main(){
	for(int i=1;i<=20;i++)
	{
		for(int j=1;j<=20;j++)
		{
			f[i][j]=false;
		}
	}
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cin>>c[i][j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(c[i][j]=='0'&&f[i][j]==false)
			{
				b=0;
				bfs(i,j);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			cout<<c[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
}
2024/7/15 10:03
加载中...