#HX1257J. 加油方阵

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB
    ID: 10101 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 普及- 上传者: 标签>编程题C++CSPCSP复赛CSP复赛专项练习暑假CSP复赛集训暑假集训1257-T2满分强化

题目描述

题目描述

小春喜爱多年的球队进入了世界总决赛,为了给球员们加油打气,球迷们决定组织一场加油秀。

在加油秀过程中,球迷们会穿着红色、绿色、蓝色三种队服中的一种·,排成一个NNMM列的方阵,方阵需要按照球迷们穿的队服颜色划分成三个部分,一个成功的方阵要求如下:

从第一行开始若干行(至少一行)的格子全部是红色的;

接下来若干行(至少一行)的格子全部是绿色的;

剩下的行(至少一行)全部是蓝色的。

由于事前通知不到位,所有球迷都是随机穿了一种颜色的队服。现在方阵已经排好了,因此只能让穿错颜色的球迷们更换队服。小春希望合理地设计三种颜色的范围,使得需要换衣服的球迷尽可能少,作为小春的助理,你决定帮他完成任务!

输入格式

输入有N+1N+1行,第一行为两个正整数N,MN,M,表示方阵的行数和列数。

接下来NN行,每行MM个数字,表示方阵中当前位置的球迷穿着的队服颜色,其中00表示红色,11表示绿色,22表示蓝色。

输出格式

输出一行一个整数,表示需要换衣服的球迷数量的最小值。

样例输入

5 5
1 2 0 0 2
1 0 2 2 1
2 1 2 1 1
0 2 0 2 1
1 0 2 2 2

样例输出

13

提示

修改后的方阵如下:

点击查看剧透级题解

0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
2 2 2 2 2
2 2 2 2 2

共有13个球迷需要换衣服。

对于 100100% 的数据,1N,M10001\le N,M\le 1000

3 1
2
0
0
3
3 1
1
2
0
3
3 1
1
2
2
2