AT_xmascon19_h Stamps 3

题目描述

兔子拥有一个大小为 $H \times W$ 的矩形网格。在这里,第 $i$ 行($1 \le i \le H$)和第 $j$ 列($1 \le j \le W$)的格子被称为格子 $(i, j)$。 格子 $(i, j)$ 的初始状态由字符 $S_{i,j}$ 表示,其中 `#` 代表该格子已被涂黑,而 `.` 表示该格子尚未被涂黑。 今年,兔子收到了一个圣诞礼物——一套特殊的印章套装。 这套印章包含高达 $10^{10}$ 种不同种类。使用第 $k$ 个印章($1 \le k \le 10^{10}$)时,它可以一次性涂黑每隔 $p_k$ 格的一系列水平方向连续的格子。这里,$p_k$ 是第 $k$ 小的奇数素数。这意味着,当使用第 $k$ 个印章时,可以任选一个行 $i$ 和一个起始列 $j_0$,将所有满足 $j = j_0 + a \cdot p_k$ 的整数 $a$ 所对应的格子 $(i, j)$ 涂黑。 兔子的目标是将整个网格中的所有格子都涂黑。请你计算出至少需要按多少次印章才能完成这一任务。

输入格式

输入数据以如下格式给出: > $ H $ $ W $ > 第一行网格状态:$ S_{1,1} $$ S_{1,2} $$ ... $$ S_{1,W} $ > 第二行网格状态:$ S_{2,1} $$ S_{2,2} $$ ... $$ S_{2,W} $ > : > 第 $H$ 行网格状态:$ S_{H,1} $$ S_{H,2} $$ ... $$ S_{H,W} $

输出格式

输出要将所有格子涂黑所需的最少印章次数。

说明/提示

### 约束 - $1 \le H, W \le 10^5$ - $S_{i,j}$ 要么是 `.`,要么是 `#` ### 示例解释 一个有效的操作示例: - 使用第 1 个印章($p_1 = 3$),选定 $i = 1$, $j_0 = 3$。 - 使用第 2 个印章($p_2 = 5$),选定 $i = 1$, $j_0 = 1$。 - 使用第 4 个印章($p_4 = 11$),选定 $i = 2$, $j_0 = 0$。 - 又一次使用第 4 个印章($p_4 = 11$),选定 $i = 2$, $j_0 = -2$。 请注意,这里 $2$ 并不是一个奇数素数。 **本翻译由 AI 自动生成**