#CF2082A. 二进制矩阵
二进制矩阵
A. 二进制矩阵
每个测试的时间限制:1 秒
内存限制:512 兆字节
如果一个矩阵的所有元素都是 或 ,则称其为二进制矩阵。
Ecrade 称一个二进制矩阵 是好的,如果满足以下两个性质:
- 矩阵 的每一行中所有数的按位异或等于 。
- 矩阵 的每一列中所有数的按位异或等于 。
Ecrade 有一个大小为 的二进制矩阵。他希望知道最少需要改变多少个元素,才能使这个矩阵变成好的。
然而这看起来有点困难,所以请你帮他!
输入
每个测试包含多个测试用例。第一行包含测试用例数 ()。
每个测试用例的描述如下:
- 第一行包含两个整数 ()。
- 接下来 行,每行包含恰好 个字符,字符仅为 或 ,描述矩阵的元素。
数据保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数,即最少需要改变的元素个数。
示例
输入
7
3 3
010
101
010
3 3
000
000
000
3 3
100
010
001
3 3
101
010
000
3 3
000
010
000
1 4
0101
4 1
0
1
0
1
输出
2
0
3
3
1
2
2
样例解释
第一个测试用例:
初始矩阵为
[
\begin{pmatrix}
1 & 0 & 0 \
0 & 1 & 0 \
0 & 0 & 1
\end{pmatrix}
]
可以修改 2 个元素得到
[
\begin{pmatrix}
1 & 1 & 0 \
1 & 0 & 1 \
0 & 1 & 1
\end{pmatrix}
]
此时所有行的异或和都是 0,所有列的异或和也都是 0。
第二个测试用例:
初始矩阵全为 0,已经满足条件,不需要修改。
第三个测试用例:
初始矩阵全为 1,可以修改 3 个元素得到
[
\begin{pmatrix}
1 & 0 & 1 \
0 & 0 & 0 \
1 & 0 & 1
\end{pmatrix}
]
此时所有行的异或和为 0,所有列的异或和也为 0。