#aBC325C. [ABC325C] Sensors

[ABC325C] Sensors

AT_abc325_c [ABC325C] Sensors

题目描述

在一个 HHWW 列的网格上,放置了 00 个或更多的传感器。我们用 (i,j)(i, j) 表示从上往下第 ii 行、从左往右第 jj 列的格子。
每个放有传感器的格子的信息由长度为 WW 的字符串 S1,S2,,SHS_1, S_2, \ldots, S_H 给出,SiS_i 的第 jj 个字符为 # 时,且仅当此时,(i,j)(i, j) 处放有传感器。
这些传感器会与上下左右及斜对角相邻格子上的其他传感器联动,并作为一个整体传感器工作。
这里,格子 (x,y)(x, y) 与格子 (x,y)(x', y') 上下左右或斜对角相邻,指的是 max(xx,yy)=1\max(|x-x'|, |y-y'|) = 1
另外需要注意,如果传感器 AA 与传感器 BB 联动,且传感器 AA 与传感器 CC 联动,则传感器 BB 与传感器 CC 也会联动。

请计算将所有联动的传感器视为一个整体后,这个网格上有多少个传感器。

输入格式

输入按以下格式从标准输入读入。

HH WW
S1S_1
S2S_2
\vdots
SHS_H

输出格式

请输出答案。

输入输出样例 #1

输入 #1

5 6
.##...
...#..
....##
#.#...
..#...

输出 #1

3

输入输出样例 #2

输入 #2

3 3
#.#
.#.
#.#

输出 #2

1

输入输出样例 #3

输入 #3

4 2
..
..
..
..

输出 #3

0

输入输出样例 #4

输入 #4

5 47
.#..#..#####..#...#..#####..#...#...###...#####
.#.#...#.......#.#...#......##..#..#...#..#....
.##....#####....#....#####..#.#.#..#......#####
.#.#...#........#....#......#..##..#...#..#....
.#..#..#####....#....#####..#...#...###...#####

输出 #4

7

说明/提示

限制条件

  • 1H,W10001 \leq H, W \leq 1000
  • H,WH, W 为整数
  • SiS_i 是长度为 WW 的字符串,每个字符为 #.

样例解释 1

将联动的传感器视为一个整体后,存在以下 33 个传感器:

  • (1,2),(1,3),(2,4),(3,5),(3,6)(1,2),(1,3),(2,4),(3,5),(3,6) 处的传感器联动为一个整体
  • (4,1)(4,1) 处的传感器
  • (4,3),(5,3)(4,3),(5,3) 处的传感器联动为一个整体

由 ChatGPT 4.1 翻译