CF1391D.505

传统题 时间 2000 ms 内存 256 MiB 10 尝试 5 已通过 2 标签

505

题目描述

如果一个二进制矩阵的每一个偶数边长的正方形子矩阵中 11 的个数都是奇数,则称该矩阵是“好”的。

给定一个由 nnmm 列组成的二进制矩阵 aa,请你求出最少需要修改多少个单元格,才能使其变为“好”的矩阵。如果无法做到,请输出 1-1

上述所有术语的正式定义请参考提示部分。

输入格式

输入的第一行包含两个整数 nnmm1nm1061 \leq n \leq m \leq 10^6nm106n\cdot m \leq 10^6),分别表示矩阵 aa 的行数和列数。

接下来的 nn 行,每行包含 mm 个字符,每个字符为 0011。如果第 ii 行第 jj 个字符为 11,则 ai,j=1a_{i,j}=1;如果为 00,则 ai,j=0a_{i,j}=0

输出格式

输出最少需要修改多少个单元格,才能使 aa 变为“好”的矩阵。如果无法做到,输出 1-1

说明/提示

在第一个样例中,将 a1,1a_{1,1} 改为 00a2,2a_{2,2} 改为 11 即可满足条件。

你可以验证第二个样例无法通过任何方式使矩阵变为“好”的。

一些定义说明:

  • 二进制矩阵指的是每个元素都是 0011 的矩阵。
  • 子矩阵由 44 个参数描述——r1r_1r2r_2c1c_1c2c_2,其中 1r1r2n1 \leq r_1 \leq r_2 \leq n1c1c2m1 \leq c_1 \leq c_2 \leq m
  • 该子矩阵包含所有满足 r1ir2r_1 \leq i \leq r_2c1jc2c_1 \leq j \leq c_2 的元素 ai,ja_{i,j}
  • 如果 r2r1=c2c1r_2-r_1 = c_2-c_1r2r1+1r_2-r_1+1 能被 22 整除,则该子矩阵称为偶数边长的正方形子矩阵。

由 ChatGPT 4.1 翻译

样例

3 3
101
001
110
2
7 15
000100001010010
100111010110001
101101111100100
010000111111010
111010010100001
000011001111101
111111011010011
-1

在线编程 IDE

建议全屏模式获得最佳体验