题目描述
当今世界,科技飞速发展,AI 也会绘画了!不过本题中你要解决的任务比绘画简单很多,给你一张画,你要求出其中有多少个“圈”。
一幅画可以抽象为一个 n 行 m 列的字符数组 ai,j (1≤i≤n,1≤j≤m),其中仅包含小写字母。如果一对字符数组中的位置 (x1,y1),(x2,y2) 满足:
- 1≤x1<x2≤n,1≤y1<y2≤m。
- ∀i∈[x1,x2],j∈[y1,y2],ai,y1=ax1,j=ax2,j=ai,y2。
我们就说有一个以 (x1,y1) 为左上角、(x2,y2) 为右下角的“圈”。比如,下图中的所有 b
就构成一个圈:
aaaaaaaaaaa
aabbbbbbbaa
aabaaaaabaa
aabaaaaabaa
aabbbbbbbaa
请你输出给定的字符数组中“圈”的数量。
输入格式
第一行两个正整数 n,m。
接下来 n 行,每行 m 个小写字母,第 i 行的第 j 个小写字母是 ai,j。
输出格式
输出一个非负整数表示字符数组中“圈”的个数。
样例输入输出
样例输入 1
3 5
zzzzz
zxzxz
zzzzz
样例输出 1
3
样例 1 解释
下面我们分别在原图中用 *
标注出了三个“圈”:
***zz zz*** *****
*x*xz zx*x* *xzx*
***zz zz*** *****
样例 2
见下发文件。
本组样例满足子任务 1 的性质。
样例 3
见下发文件。
本组样例满足子任务 1 的性质。
样例 4
见下发文件。
本组样例满足子任务 2 的性质。
样例 5
见下发文件。
本组样例满足子任务 2 的性质。
样例 6
见下发文件。
本组样例满足子任务 2 的性质。
样例 7
见下发文件。
本组样例满足子任务 4 的性质。
样例 8
见下发文件。
本组样例满足子任务 6 的性质。
数据范围
本题采用捆绑测试,你需要通过一个子任务的所有测试点才能得到子任务的分数。
对于所有测试点,1≤n,m≤2000。详细数据范围如下表。
子任务编号 | n,m≤ | 特殊性质 | 分数 |
---|---|---|---|
1 | 5 | 矩阵中所有字母均在 ab 中随机生成 |
5 |
2 | 2000 | nm≤40000 | 10 |
3 | 矩阵中只存在字母 a |
10 | |
4 | 矩阵中所有字母均在 ab 中随机生成 |
15 | |
5 | 400 | 无 | 25 |
6 | 2000 | 35 |
时间限制:6s
空间限制:1024MB