问题 B: 图像压缩

内存限制:256 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:205 通过:77

题目描述

        给你一个图像,它可以用二维n×m像素网格表示。图像的每个像素都分别由字符“0”或“1”表示。您希望压缩此图像。您需要选择一个大于1的整数k(k>1),并将图像分割为k×k块。如果n和m不能被k整除,则图像的右侧和底部仅填充0,以便它们可被k整除。每个块中的每个像素必须具有相同的值。
       您可能需要切换一些像素的状态,即把0改成1、把1改成0,使得每个块内所有像素状态一致——这样才是可压缩的。您可以任选 k,请您找到您需要切换状态的最小像素数。输出这个最小值。
更具体地说,步骤是首先选择k,然后用零填充图像,然后,我们可以切换像素,使其可压缩。使图像在该状态下必须可压缩。



输入格式

第一行输入将包含两个整数n,m(2≤n,m≤2500),即图像的尺寸。
接下来的n行输入将包含一个正好有m个字符的二进制字符串,代表图像。

输出格式

打印单个整数,即切换以使图像可压缩所需的最小像素数。
Example
Input
3 5
00100
10110
11001
Output
5
我们首先选择k=2。
图像填充如下:
001000
101100
110010
000000
我们可以将图像切换为如下所示:
001100
001100
000000
000000
此时可以看到,对于k=2,这个图像是可压缩的。

输入样例 复制

3 5
00100
10110
11001

​

输出样例 复制

5

数据范围与提示