#O3215. LQ.中级组.编程题.十四届.STEMA.04.花坛

LQ.中级组.编程题.十四届.STEMA.04.花坛

题目描述

小明有一张 N*M ( 2 ≤ N ≤ 30 , 2 ≤ M ≤ 30 ) 的方格纸,且每个小方格都是正方形,纸上的每个小方格中都画了一个花朵,共有 a 、b 、c 三种不同的花朵。为了美观现按照以下要求为花朵涂色。

要求:

  1. 涂色的花朵区域必须是一个正方形矩阵,最小为一个 2*2 的正方形矩阵;

  2. 正方形矩阵中的花朵必须是同一种花朵;

  3. 只要正方形矩阵四个顶点不重合就算作不同的正方形矩阵(有部分区域重叠或者大正方形矩阵包含小正方形矩阵,按不同的正方形矩阵计算)。

已知方格纸的行数 N ( 2 ≤ N ≤ 30 ) 和列数 M ( 2 ≤ M ≤ 30 ),及每个小正方形方格中花朵的种类,请帮助小明计算出,按要求有多少个正方形矩阵需要涂色。

例如: N=4 , D = 5 ,矩阵如下图:

img

其中有 3 个正方形矩阵需要涂抹颜料 ( 蓝色框区域和绿色框区域的矩阵部分重叠按 2 个计算)。

输入格式

第一行输入两个正整数 N ( 2 ≤ N ≤ 30 ) 和 M ( 2 ≤ M ≤ 30 ), N 表示矩阵方格的行数, M 表示矩阵方格的列数,两个正整数之间以一个空格隔开

第二行开始输入 N 行,每行 M 个字符( 字符只包含 a、b、c ),字符之间以一个空格隔开

输出格式

一个整数,表示 N*M 的矩阵方格纸中,需要涂抹颜料的正方形矩阵的个数

样例

4 5
b b c a a
b b b c b
c c a a a
a b a a a
3