Boss:细胞数量

编程闯关 难度 5

#graph-basics#floodfill#dfs

显微镜下的载玻片!非零数字是细胞的一部分,上下左右相连算同一个细胞。数数有几个细胞——泛洪算法上考场!

题目描述

一个 n×m 的矩阵由数字 0~9 组成(n,m ≤ 100)。非零数字表示细胞的一部分,上下左右相邻的非零数字属于同一个细胞。求细胞的个数。

输入:第一行两个整数 n m;接下来 n 行,每行一个长度为 m 的数字串。
输出:一个整数,细胞个数。

输入样例:
4 5
11000
01100
00011
00001

输出样例:
2

知识点讲解

经典泛洪:遍历网格,遇到未访问的非零格 → 细胞数 +1,DFS/BFS 把整个细胞标记掉。注意读入是连续数字字符(每行一个字符串),用 s[j]-'0' 取数字。

改编自:NOIP 2000 普及组 · 细胞数量(同型变体)|考点:泛洪算法数连通块

来小码星球,动手写一遍 →