能走到地图边界的村庄是自由的,其余村庄要改建。从边界做一次 BFS 即可。
王国规划官正在评估一张地图,需要判断其中有多少个村庄将来会被改建为城墙。地图由 h 行 w 列的方格组成,每个方格只有两种状态:字符 W 表示已有城墙,字符 V 表示村庄。
规划规则如下:
给定一张完整的地图,请统计会被改建成城墙的村庄总数。
约束条件:行数 h 和列数 w 均为 1 到 200 之间的整数;地图中每个字符只会是 W 或 V。
第一行包含两个整数 h 和 w,分别表示地图的行数和列数。
接下来的 h 行,每行包含一个长度为 w 的字符串,由字符 W 和 V 组成,表示地图中对应行的方格状态。
输出一个整数,表示会被改建成城墙的村庄数量。
输入
1 1
V
输出
0
说明
地图只有 1 行 1 列,唯一的村庄本身就在地图最外一圈。从该村庄出发就能到达边界,因此它是自由村庄,不会被改建。被改建的村庄数量为 0。
输入
3 3
WWW
WVW
WWW
输出
1
说明
地图正中央的村庄四周相邻格子都是城墙 W。从该村庄出发,无法向上、下、左、右移动,因此不能连通到地图最外一圈。这是唯一的封闭领地,内部有 1 个村庄,所以被改建的村庄数量为 1。
输入
5 6
VVVVVV
VWWWWV
VWVVWV
VWWWWV
VVVVVV
输出
2
说明
边界一圈全是村庄,它们本身就在最外一圈,因此都是自由村庄。
内部有两个相邻的村庄,位于第 3 行第 3 列和第 3 行第 4 列。这两个村庄所在的小块区域,上方、下方、左侧和右侧都被城墙 W 隔开,无法连通到边界上的任何村庄。它们组成一个封闭领地,共有 2 个村庄会被改建。
因此总改建数量为 2。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册