/*
Name: P1162 填涂颜色
Copyright: @yjy.com
Author: Yjy
Date: 09/12/17 15:38
Description:...
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=100;
int n,
a[MAXN][MAXN],
b[MAXN][MAXN]={0},
bx[5]={0,-1,1,0,0},
by[5]={0,0,0,-1,1};
queue<int>qx,qy;
void bfs(){
qx.push(0),qy.push(0);
b[0][0]=1;
while(!qx.empty() && !qy.empty()){
int x=qx.front(),y=qy.front();
qx.pop(),qy.pop();
for(int i=1;i<=4;++i){
int x1=x+bx[i],y1=y+by[i];
if(a[x1][y1]==1 || x1<0 || y1<0 ||
x1>n+1 || y1>n+1
|| b[x1][y1]==1)continue;
a[x1][y1]=0;
qx.push(x1),qy.push(y1);
b[x1][y1]=1;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
scanf("%d",&a[i][j]);
if(a[i][j]==0)a[i][j]=2;
}
bfs();
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
P1162 填涂颜色
最新推荐文章于 2022-05-30 20:29:42 发布