CF884E Binary Matrix
题目描述
给定一个大小为 $n \times m$ 的矩阵。矩阵中的每个元素都是 $1$ 或 $0$。你需要判断由 $1$ 组成的连通块的数量。若两个格子有公共边界,且它们的元素都是 $1$,则它们属于同一个连通块。
注意,本题的内存限制不同于一般题目!
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \leq n \leq 2^{12}$,$4 \leq m \leq 2^{14}$)——分别表示矩阵的行数和列数。保证 $m$ 能被 $4$ 整除。
接下来 $n$ 行,每行包含 $\frac{m}{4}$ 个一位十六进制数字(这些数字可以是从 $0$ 到 $9$ 的数字,或从 $A$ 到 $F$ 的大写拉丁字母)。这些数字的二进制表示对应于该行接下来的 $4$ 个矩阵元素。例如,如果给出的是 $B$,则对应的元素是 $1011$,如果给出的是 $5$,则对应元素是 $0101$。
元素之间没有空格分隔。
输出格式
输出由 $1$ 组成的连通块的数量。
说明/提示
第一个样例的矩阵为:
```
0001
1010
1000
```
很明显有三个连通块。
第二个样例:
```
01011111
11100011
```
很明显有两个连通块。
第三个样例没有任何 $1$,因此答案为 $0$。
由 ChatGPT 5 翻译