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 翻译