仅有48分,求助
  • 板块P1162 填涂颜色
  • 楼主wch666
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/13 21:46
  • 上次更新2023/11/2 21:00:51
查看原帖
仅有48分,求助
778382
wch666楼主2023/9/13 21:46
#include<bits/stdc++.h>
using namespace std; 
int n,a[35][35];
bool dfs(int x,int y)
{
	bool flag1=false,flag2=false,flag3=false,flag4=false;
	for(int i=0; i<=x; i++)
	{
		int j=y;
		if(a[i][j] == 1)
		{
			flag1=true;
			break;
		}
		flag1=false;
	}
	for(int i=x; i<=n+1; i++)
	{
		int j=y;
		if(a[i][j] == 1)
		{
			flag2=true;
			break;
		}
		flag2=false;
	}
	for(int i=0; i<=y; i++)
	{
		int j=x;
		if(a[i][j] == 1)
		{
			flag3=true;
			break;
		}
		flag3=false;
	}
	for(int i=y; i<=n+1; i++)
	{
		int j=x;
		if(a[i][j] == 1)
		{
			flag4=true;
			break;
		}
		flag4=false;
	}
	if(flag1 == true && flag2 == true && flag3 == true && flag4 == true)
		return true;
	else
		return false;
}
int main()
{
	cin>>n;
	memset(a,0,1156);
	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++)
			cin>>a[i][j];
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=n; j++)
		{
			if(a[i][j] == 0 && ((i > 1 || i < n) && (j > 1 || j < n)))
			{
				if(dfs(i,j) == true)
					a[i][j]=2;
				else if(!dfs(i,j))
					a[i][j]=0;
			}
		}
	}
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=n; j++)
			cout<<a[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}
2023/9/13 21:46
加载中...