#P005769. 双色子矩阵
双色子矩阵
当前没有测试数据。
题目描述
有一个大小为 的矩阵,矩阵的每个位置的值由大写字母 组成,每种大写字母代表一个独特的颜色。
请从该矩阵中求出满足如下要求的子矩阵的数量。
- 子矩阵包含 种颜色。
- 子矩阵中的两种颜色,一种颜色构成 个连通块,另一种颜色,构成 个或 个以上的连通块。
- 两个符合上述条件的子矩阵不能是完全包含的关系,即如果符合条件的子矩阵 被符合条件的另一个子矩阵 完全包含,则子矩阵 不需要被统计。
同一种颜色构成连通块的要求是:从其中一个点,沿上下左右四方向可以走到的同色的位置,构成一个同色连通块。
例如,假设如下矩阵是某矩阵的子矩阵,则其满足上述条件 和条件 。
AAAAA
ABABA
AAABB
输入格式
第 行读入整数 。
接下来 行,每行读入 个大写字母。
输出格式
输出满足题意的双色子矩阵的数量。
样例 #1
输入
4
ABBC
BBBC
AABB
ABBC
输出
2
样例 #2
输入
8
BABABBBB
ABAABABA
BAABAAAB
BBABABAB
BBABABAB
AABABAAC
AABBABAC
AACAAAAC
输出
32
样例说明
样例 1 解释
样例 包含 个符合条件的子矩阵。
第 个子矩阵从 点开始到 点结束,子矩阵如下。
ABB
BBB
AAB
ABB
第 个子矩阵从 点开始到 点结束,子矩阵如下。
BC
BC
BB
BC
请注意,子矩阵不可以是完全包含关系,但可以是部分重叠的关系。
数据范围
对于 的数据,满足矩阵中只有 种大写字母。
对于 的数据,满足 。