编程闯关 难度 5
显微镜下的载玻片!非零数字是细胞的一部分,上下左右相连算同一个细胞。数数有几个细胞——泛洪算法上考场!
一个 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 普及组 · 细胞数量(同型变体)|考点:泛洪算法数连通块
来小码星球,动手写一遍 →