#include<bits/stdc++.h>
using namespace std;
int dx[] = {0, 1, -1, 0, 0};
int dy[] = {0, 0, 0, 1, -1};
int n, a[31][31], used[31][31];
void dfs(int vx, int vy)
{
if(vx < 1 || vx > n || vy < 1 || vy > n || used[vx][vy] == 1 || a[vx][vy] == 1) return ;
used[vx][vy] = 1;
for(int i = 1; i <= 4; i++) dfs(vx + dx[i], vy + dy[i]);
return ;
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
scanf("%d", &a[i][j]);
}
}
dfs(1, 1);
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(used[i][j] == 0 && a[i][j] == 0) printf("2 ");
else if(a[i][j] == 1) printf("1 ");
else printf("0 ");
}
printf("\n");
}
return 0;
}
像是遇到了特殊情况,想不出来,卡在32分。