朴素的求连通块个数。两遍dfs,一次正常算,一次把B,G看作一样的字符算。做差即可。
C++
米小游是一位蓝绿色盲,他面对许多日常生活中我们认为很容易的事情,都需要付出比常人更大的努力。
有一天,他收到了一个矩阵,矩阵的每个格子的颜色是红色、绿色和蓝色三种颜色之中的一个,但由于他无法分辨蓝色和绿色,因此在他眼里这个矩阵只有两种颜色。他想要对这个矩阵进行分析,但是由于他的视觉缺陷,他自己看到的连通块数量可能比实际的连通块数量少。
你可以帮米小游计算连通块少了多少吗?
注意: 题目中的连通是指上下左右的四连通。
第一行输入两个正整数 n 和 m ,代表矩阵的行数和列数。
接下来的 n 行,每行输入一个长度为 m 的,仅包含 R
、G
、B
三种颜色的字符串,代表米小游拿到的矩阵。
1≤n,m≤1000
一个整数,代表米小游视角里比真实情况少的连通块数量。
输入
2 6
RRGGBB
RGBGRR
输出
3
样例解释
米小游视角里有 3 个连通块,而实际上有 6 个连通块,所以米小游视角的连通块数量比真实情况少了 3 个。