luogu#P3032. [USACO11NOV] Binary Sudoku G

    ID: 2092 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>搜索2011USACO启发式迭代加深搜索 IDA*A* 算法状压 DP

[USACO11NOV] Binary Sudoku G

题目描述

农夫约翰的奶牛们喜欢玩一款有趣的“数独”变体游戏。这款游戏和标准数独一样,包含一个 9×99 \times 9 的网格,且网格被划分为 3×33 \times 3 的子网格。不过,奶牛们的版本只使用二进制数字(0011):

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×33 \times 3 子网格中的每一个都具有偶校验(即包含偶数个 11)。对于上面的示例,只需 33 次翻转就能得到一个有效的解:

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×99 \times 9 的 01 矩阵,问最少修改几个数能使每行、每列以及每个九宫格中 11 的个数均为偶数。

输入格式

1199 行:每行包含一个 99 位的二进制字符串,对应初始棋盘的一行。

输出格式

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

000000000 
001000100 
000000000 
000110000 
000111000 
000000000 
000000000 
000000000 
000000000 

3 

提示

样例输入中的数独棋盘与题目描述中的示例一致。

三次翻转即可解决该谜题。