← 查看本卷题目 第 216 / 324 题

俄罗斯方块

1 秒 / 测试点 · 512 MiB · 29 个测试点。

题面描述

小杨同学用不同种类的俄罗斯方块填满了一个大小为 n×mn\times m 的网格图。

网格图由 n×mn\times m 个带颜色方块构成。小杨同学现在将这个网格图交给了你,请你计算出网格图中俄罗斯方块的种类

数。

如果两个同色方块是四连通(即上下左右四个相邻的位置)的,则称两个同色方块直接连通;若两个同色方块同时

与另一个同色方块直接或间接连通,则称两个同色方块间接连通。一个俄罗斯方块由一个方块和所有与其直接或间

接连通的同色方块组成。定义两个俄罗斯方块的种类相同当且仅当通过平移其中一个俄罗斯方块可以和另一个俄罗

斯方块重合;如果两个俄罗斯方块颜色不同,仍然视为同一种俄罗斯方块。

例如,在如下情况中,方块 11 和方块 22 是同一种俄罗斯方块,而方块 11 和方块 33 不是同一种俄罗斯方块。

方块形状示意图:

三种方块形状比较

输入格式

第一行包含两个正整数 n,mn,m,表示网格图的大小。

对于之后 nn 行,第 ii 行包含 mm 个正整数 ai1,ai2,…,aima_{i1},a_{i2},\ldots,a_{im},表示该行 mm 个方块的颜色。

输出格式

输出一个非负整数,表示俄罗斯方块的种类数。

样例1

5 61 2 3 4 4 51 2 3 3 4 51 2 2 3 4 51 6 6 7 7 86 6 7 7 8 8
7

样例解释

77 种类型的俄罗斯方块如下:

样例方块类型示意图:

样例中的七种方块形状

数据范围

子任务编号 数据点占比 nn mm max⁡aij\max a_{ij} 特殊条件
1 30 ≤20\le20 ≤20\le20 ≤400\le400 所有俄罗斯方块大小不超过 5×55\times5,即均可以放置于 5×55\times5 的网格图中
2 30 ≤500\le500 ≤500\le500 ≤5002\le500^2 所有俄罗斯方块的形状均为 1×x1\times x 或 x×1x\times1 类型,其中 xx 为任意正整数
3 40 ≤500\le500 ≤500\le500 ≤5002\le500^2

对于全部数据,保证有 1≤n,m≤5001\le n,m\le500,0<aij≤50020<a_{ij}\le500^2。