CF1703E Mirror Grid

题目描述

给你一个 $n$ 行 $n$ 列的正方形网格。每个格子中包含 $0$ 或 $1$。 每次操作,你可以选择网格中的一个格子并将其翻转(即 $0 \to 1$ 或 $1 \to 0$)。请你求出最少需要多少次操作,才能使这个正方形在旋转 $0^{\circ}$、$90^{\circ}$、$180^{\circ}$ 和 $270^{\circ}$ 后都保持不变。 下图展示了一个网格的所有旋转情况。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1703E/df4a9e7a944efc8b4d2d665fb77f2a0392653bc5.png)

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 100$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 100$),表示网格的大小。 接下来 $n$ 行,每行包含 $n$ 个字符 $a_{i,j}$($0 \leq a_{i,j} \leq 1$),表示每个格子中的数字。

输出格式

对于每个测试用例,输出一个整数,表示使正方形在旋转 $0^{\circ}$、$90^{\circ}$、$180^{\circ}$ 和 $270^{\circ}$ 后都保持不变所需的最小操作次数。

说明/提示

在第一个测试用例中,我们可以进行一次操作,将网格变为 $$ \begin{matrix} 0 & 1 & 0\\ 1 & 1 & \color{red}{1}\\ 0 & 1 & 0 \end{matrix} $$ 现在,正方形的所有旋转都相同。 在第二个测试用例中,正方形的所有旋转已经相同,因此不需要任何翻转。 由 ChatGPT 4.1 翻译