CF1393D Rarity and New Dress
题目描述
Carousel Boutique 又忙起来了!Rarity 决定去参加小马舞会,她当然需要一件新裙子,因为多次穿同一件裙子出门是很不礼貌的。首先,她需要一个裙子图案,她打算从一块矩形的多彩布料上剪下来。
这块多彩布料由 $n \times m$ 个独立的正方形布片组成。由于 Rarity 喜欢有风格的裙子,裙子图案必须只包含同一种颜色的布片。裙子图案必须是正方形,并且由于 Rarity 喜欢菱形,图案的边必须与布料的边形成 $45^\circ$ 的夹角(这样它就像传统意义上的菱形)。
符合要求的裙子图案示例: 不符合要求的裙子图案示例: 第一个包含了多种颜色的布片,第二个超出了布料的边界,第三个不是一个与布料边形成 $45^\circ$ 夹角的正方形。
Rarity 想知道,有多少种方法可以剪出满足所有条件的裙子图案。请帮助她,满足她的好奇心,这样她就能继续创作她的新杰作了。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 2000$)。接下来的 $n$ 行,每行包含 $m$ 个小写英文字母,第 $j$ 个字母表示当前行第 $j$ 列的布片。相同字母表示相同颜色,不同字母表示不同颜色。
输出格式
输出一个整数:满足 Rarity 所有条件的裙子图案的方案数。
说明/提示
在第一个样例中,所有大小为 $1$ 的裙子图案以及一个大小为 $2$ 的图案都是符合要求的。
在第二个样例中,只有大小为 $1$ 的裙子图案是符合要求的。
由 ChatGPT 4.1 翻译