P16745 [GKS 2019 #H] Diagonal Puzzle

题目描述

Kibur 为你设计了一个新谜题!谜题包含一个 $N \times N$ 的方格网格。每个方格是黑色或白色。目标是用尽可能少的步数使所有方格变为黑色。 在一步操作中,你可以选择任意一条对角线,并翻转该对角线上所有方格的颜色(黑色变白色,白色变黑色)。例如,下面展示了 $3 \times 3$ 网格中所有 $10$ 条可能的对角线。 ``` /.. ./. ../ ... ... ... /.. ./. ../ ... ... ... /.. ./. ../ ... ... \.. .\. ..\ ... \.. .\. ..\ ... \.. .\. ..\ ... ... ``` 给定棋盘的初始配置,求使所有方格变黑所需的最少步数。保证存在一种方法能使所有方格变黑。

输入格式

输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例的第一行包含一个整数 $N$,表示网格的大小。随后 $N$ 行,每行包含 $N$ 个字符,描述棋盘的初始配置。如果第 $r$ 行第 $c$ 列的方格初始为白色,则该位置字符为 `.`(ASCII 码 46);否则为 `#`(ASCII 码 35),表示黑色。

输出格式

对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是使所有方格变黑所需的最少步数。

说明/提示

### 限制条件 $1 \le T \le 100$。 保证存在一种方法能使所有方格变黑。 **测试集 1(可见)** $2 \le N \le 8$。 **测试集 2(隐藏)** $2 \le N \le 100$。 翻译由 DeepSeek V4 Pro 完成