P3032 [USACO11NOV] Binary Sudoku G

题目描述

农夫约翰的奶牛们喜欢玩一款有趣的“数独”变体游戏。这款游戏和标准数独一样,包含一个 $9 \times 9$ 的网格,且网格被划分为 $3 \times 3$ 的子网格。不过,奶牛们的版本只使用二进制数字($0$ 和 $1$): ``` 000 000 000 001 000 100 000 000 000 000 110 000 000 111 000 000 000 000 000 000 000 000 000 000 000 000 000 ``` 二进制数独的目标是尽可能少地翻转比特位,使得九行中的每一行、九列中的每一列,以及九个 $3 \times 3$ 子网格中的每一个都具有偶校验(即包含偶数个 $1$)。对于上面的示例,只需 $3$ 次翻转就能得到一个有效的解: ``` 000 000 000 001 000 100 001 000 100 000 110 000 000 110 000 000 000 000 000 000 000 000 000 000 000 000 000 ``` 给定二进制数独棋盘的初始状态,请帮助奶牛们确定解决该问题所需的最少翻转次数。 **【简化题意】** 给出一个 $9 \times 9$ 的 01 矩阵,问最少修改几个数能使每行、每列以及每个九宫格中 $1$ 的个数均为偶数。

输入格式

第 $1$ 至 $9$ 行:每行包含一个 $9$ 位的二进制字符串,对应初始棋盘的一行。

输出格式

第 $1$ 行:一个整数,表示使每一行、每一列和每一个子网格都具有偶校验所需的最少翻转次数。

说明/提示

样例输入中的数独棋盘与题目描述中的示例一致。 三次翻转即可解决该谜题。