#abc455b. Spiral Galaxy

Spiral Galaxy

题目描述

有一个 HHWW 列的网格。从上往下第 ii 行、从左往右第 jj 列的单元格记为 (i,j)(i, j)

网格的每个单元格都被染成白色或黑色。网格的信息由 HH 个长度为 WW 的字符串 S1,S2,,SHS_1, S_2, \ldots, S_H 给出:如果 SiS_i 的第 jj 个字符是 .,则单元格 (i,j)(i, j) 是白色的;如果是 #,则是黑色的。

求网格中有多少个子矩形区域是中心对称的。

更正式地说,求有多少组整数元组 (h1,h2,w1,w2)(h_1, h_2, w_1, w_2) 满足以下所有条件:

  • 1h1h2H1 \leq h_1 \leq h_2 \leq H
  • 1w1w2W1 \leq w_1 \leq w_2 \leq W
  • 对于满足 h1ih2h_1 \leq i \leq h_2w1jw2w_1 \leq j \leq w_2 的所有整数 i,ji, j,单元格 (i,j)(i, j) 和单元格 (h1+h2i,w1+w2j)(h_1 + h_2 - i, w_1 + w_2 - j) 具有相同的颜色。

输入格式

第一行输入两个整数 HHWW

接下来 HH 行,每行输入一个长度为 WW 的字符串 SiS_i,由 .# 组成。

输出格式

输出一个整数,即答案。

3 2
.#
#.
##
10

4 5
.#.#.
####.
##..#
....#
54

数据范围与提示

对于 100%100\% 的数据,1H,W101 \leq H, W \leq 10