AT_jsc2026_final_f Four Shelters

题目描述

有一个 $H$ 行 $W$ 列的格子。第 $i$ 行第 $j$ 列的格子表示为 $(i, j)$。 给定 $H$ 个长度为 $W$ 的字符串 $S_1, S_2, \ldots, S_H$。在每个 $S_i$ 中,第 $j$ 个字符为 `o` 的格子 $(i, j)$ 可以选择建造避难所。请从这些格子中选出 $4$ 个不同的格子,各自建造一个避难所。 如果对于所有的格子,都有且只有一个距离该格子曼哈顿距离最小的避难所,则称该避难所的分布是一种良好配置。 请计算良好配置的方案数。注意,避难所之间没有区别。

输入格式

输入按以下格式从标准输入读入。 > $H$ $W$ > $S_1$ > $S_2$ > $\vdots$ > $S_H$

输出格式

请输出良好配置的方案数。

说明/提示

### 样例解释 1 可以建避难所的格子有 $5$ 个。在这些格子中,除格子 $(1,1)$ 之外的其他 $4$ 个格子全部建避难所,是唯一的良好配置。 例如,如果在除了格子 $(1,3)$ 之外的 $4$ 个格子建造避难所,则对于格子 $(1,4)$,最近的避难所分别在 $(2,3)$ 和 $(1,6)$ 这两个格子,所以不是良好配置。 ### 数据范围 - $1 \le H, W \le 500$ - $S_i$ 由 `o` 和 `.` 组成,长度为 $W$ - $H, W$ 是整数 由 ChatGPT 5 翻译