P1162 填涂顏色 - 洛谷
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e7 + 10;
int n;
int a[100][100],b[110][110];
int dx[4]={-1,1,0,0};
int dy[4]={0,0,1,-1};
void dfs(int x,int y)
{if(x<0 || x>n+1 || y<0 || y>n+1 || a[x][y]!=0) return;a[x][y]=1;for(int i=0;i<4;i++)dfs(x+dx[i],y+dy[i]);
}
int main()
{cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>b[i][j];if(b[i][j]==0) a[i][j]=0;else a[i][j]=2;}dfs(0,0);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i][j]==0) cout<<2<<' ';else cout<<b[i][j]<<' ';}cout<<endl;}return 0;
}