俄罗斯方块 题面描述 小杨同学用不同种类的俄罗斯方块填满了一个大小为n×m的网格图。 网格图由n×m个带颜色方块构成。小杨同学现在将这个网格图交给了你,请你计算出网格图中俄罗斯方块的种类数。 如果两个同色方块是四连通(即上下左右四个相邻的位置)的,则称两个同色方块直接连通;若两个同色方块同时与另一个同色方块直接或间接连通,则称两个同色方块间接连通。一个俄罗斯方块由一个方块和所有与其直接或间接连通的同色方块组成。定义两个俄罗斯方块的种类相同当且仅当通过平移其中一个俄罗斯方块可以和另一个俄罗斯方块重合;如果两个俄罗斯方块颜色不同,仍然视为同一种俄罗斯方块。 例如,在如下情况中,方块1和方块2是同一种俄罗斯方块,而方块1和方块3不是同一种俄罗斯方块。 输入格式 第一行包含两个正整数n,m,表示网格图的大小。 对于之后n行,第i行包含m个正整数ai1,ai2,...,aim,表示该行m个方块的颜色。 输出格式 输出一个非负整数,表示俄罗斯方块的种类数。 样例输入1: 5 6 1 2 3 4 4 5 1 2 3 3 4 5 1 2 2 3 4 5 1 6 6 7 7 8 6 6 7 7 8 8 样例输出1: 7 样例解释 数据范围



正确答案:Flood Fill 求每个四连通同色块,把其所有坐标平移到最小行列归零得到形状签名(排序后相对坐标),用集合去重,输出签名种类数
试卷来源:202403 CCF-GESP编程能力等级认证C++七级真题