测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A70634. 填涂颜色

编程题 基础

题目描述

由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 个方向。现要求把闭合圈内的所有空间都填写成 2

例如:6 \times 6 的方阵(n=6),涂色前和涂色后的方阵如下。

0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1 
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1 

输入格式

每组测试数据第一行一个整数 n (1≤n≤30)。

接下来 n 行,由 01 组成的 n \times n 的方阵。

方阵内只有一个闭合圈,圈内至少有一个 0

输出格式

已经填好数字 2 的完整方阵 。

输入输出样例

输入 #1
6
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 0 0 1
1 1 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1
输出 #1
0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1

说明/提示

## 思路

「填涂颜色」用广度优先搜索求最少步:队列分层扩展。

## 步骤

1. 读入地图或状态。
2. 起点入队,BFS 扩展未访问邻居。
3. 到达终点时输出步数。