#include<bits/stdc++.h>
using namespace std;
int room[40][40];
int dir[4][2]={
{-1,0},{0,-1},{1,0},{0,1}
};
int n;
bool vis[40][40];
#define CHECK(x,y) (x<=n+1&&x>=0&&y>=0&&y<=n+1)
struct node{
int x,y;
};
void bfs(int dx,int dy){
queue<node>q;
node start,next;
start.x=dx;
start.y=dy;
q.push(start);
while(!q.empty()){
start=q.front();
q.pop();
for(int i=0;i<4;i++){
next.x=start.x+dir[i][0];
next.y=start.y+dir[i][1];
if(CHECK(next.x,next.y)&&room[next.x][next.y]==0&&!vis[next.x][next.y]){
vis[next.x][next.y]=1;
q.push(next);
}
}
}
}
int main(){
//freopen("in.txt","r",stdin);
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>room[i][j];
}
}
bfs(0,0);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(!vis[i][j]&&room[i][j]==0)
cout<<"2"<<" ";
else if(room[i][j]==0)
cout<<"0"<<" ";
else cout<<"1"<<" ";
}
cout<<endl;
}
return 0;
}
P1162 填涂颜色 普及−
最新推荐文章于 2024-07-19 15:45:46 发布