题目描述
有一个 n×m 的 01 表格,左上角坐标为 (1,1),右下角坐标为 (n,m)。
对于任意位置 (x,y),定义
Ax,y=i=1∑yqx,i,
也就是第 x 行从第 1 列到第 y 列中 1 的数量。
同时定义
Bx,y=i=1∑xqi,y,
也就是第 y 列从第 1 行到第 x 行中 1 的数量。
现在只考虑所有满足 qx,y=1 的位置。每个这样的格子都会生成一个坐标印章:
(Ax,y,Bx,y).
如果所有值为 1 的格子生成的坐标印章两两不同,那么这个表格就是一个 规范表格。
现在给你一个初始表格。你可以进行若干次操作,每次选择一个当前为 0 的格子,将它改成 1。
请你求出最少需要多少次操作,才能使整个表格变成规范表格。
输入格式
第一行两个正整数 n,m。
接下来 n 行,每行 m 个 0/1 字符,表示初始表格。第 i 行第 j 个字符表示 qi,j。
输出格式
输出一行一个非负整数,表示最少需要把多少个 0 改成 1。
样例 1 输入
3 3
1 0 0
0 0 1
0 0 1
样例 1 输出
1
样例 2 输入
4 4
0 1 0 1
1 1 1 1
1 0 0 0
1 1 0 0
样例 2 输出
2
样例解释
对于第一个样例,将 (1,3) 变为 1 即可。
对于第二个样例,将 (1,1),(1,3) 变为 1 即可。
样例 3 ∼ 7
见选手目录下 snow/ex_snow3∼7.in 和 snow/ex_snow3∼7.out。
数据分别满足子任务 2,3,4,6,7 的限制。
数据范围
保证对于所有数据,1≤n,m≤500。Subtask 4,5 中每个 Subtask 有不超过 5 组测试点。
| Subtask |
n |
m |
分值 |
特殊性质 |
| 1 |
≤4 |
10 |
|
| 2 |
=2 |
≤300 |
| 3 |
=3 |
| 4 |
≤8 |
矩阵元素随机生成 |
| 5 |
≤15 |
15 |
| 6 |
≤50 |
20 |
|
| 7 |
≤500 |
25 |