AT_abc442_f [ABC442F] Diagonal Separation 2

题目描述

有一个 $N$ 行 $N$ 列的网格。从上往下第 $i$ 行、从左往右第 $j$ 列的方格记为 $(i, j)$。 网格中的每个方格都被涂成白色或黑色。网格的信息由 $N$ 个字符串 $S_1, S_2, \dots, S_N$ 给出。如果 $S_i$ 的第 $j$ 个字符是 `.`,则方格 $(i, j)$ 为白色;如果 $S_i$ 的第 $j$ 个字符是 `#`,则方格 $(i, j)$ 为黑色。 你需要对某些方格进行重新涂色,使得以下两个条件均满足: 1. 对于每一行,都满足以下条件: 存在一个整数 $k$ ($0 \le k \le N$),使得该行最左侧的 $k$ 个方格被涂成白色,而该行其余方格被涂成黑色。 2. 对于每一列,都满足以下条件: 存在一个整数 $k$ ($0 \le k \le N$),使得该列最上方的 $k$ 个方格被涂成白色,而该列其余方格被涂成黑色。 求满足上述条件所需重新涂色的方格的最小数量。

输入格式

输入从标准输入按以下格式给出: > $N$ > > $S_1$ > > $S_2$ > > $\vdots$ > > $S_N$ **限制条件** - $1 \le N \le 5000$ - $N$ 是整数。 - $S_i$ 是长度为 $N$ 的字符串,由 `.` 和 `#` 组成。

输出格式

打印答案。

说明/提示

**样例 1 解释** 你可以通过将方格 $(2,1)$ 重新涂成白色,并将方格 $(3,3)$ 重新涂成黑色来满足条件。