#P14209. [ROI 2016 Day2] 视频监控管理

[ROI 2016 Day2] 视频监控管理

题目背景

译自 ROI 2016 Day2 T1. Управление видеонаблюдением

题目描述

一家安保公司接到合同,负责守卫两栋建筑。每栋建筑中都安装了多台视频监控摄像机。

安保室的一面墙上安装了一块矩形监控屏墙,由 nn 行组成,每行有 mm 个视频监视器。每个监视器显示的是来自两栋建筑之一的某个摄像头的画面。安保室配备了一个创新型控制面板,上面有四个按钮:“左移”、“右移”、“上移”和“下移”。

按下“左移”按钮时,每个监视器上的画面会移动到其左侧相邻的监视器上;而每行中最左侧监视器上的画面会移动到该行最右侧的监视器上。

类似地,“右移”、“上移”和“下移”按钮的功能如下:

  • “右移”:每个监视器上的画面移动到其右侧相邻的监视器上;每行最右侧监视器上的画面会移动到该行最左侧的监视器上。
  • “上移”:每个监视器上的画面移动到其上方的监视器上;最上方一行的监视器画面会移动到最下方一行的监视器上。
  • “下移”:每个监视器上的画面移动到其下方的监视器上;最下方一行的监视器画面会移动到最上方一行的监视器上。

若某个 2×22 \times 2 的监视器方块中的四个画面全部来自同一栋建筑,则称这个方块是便于观察的。通过控制面板上的按钮移动画面,便于观察的方块数量可能会发生变化。同一个监视器可以同时属于多个便于观察的方块。

请你编写一个程序,计算通过操作控制面板所能获得的便于观察的方块数量的最大值

输入格式

第一行包含两个整数 nnmm,分别表示监视器的行数和每行的监视器数量。

接下来的 nn 行描述从上到下的每一行监视器的情况。每一行包含 mm 个字符,描述该行从左到右的监视器来源:

  • 字符 '1' 表示该监视器显示的是第一栋建筑的画面;
  • 字符 '2' 表示该监视器显示的是第二栋建筑的画面。

输出格式

输出一个整数——通过移动监视器画面可以获得的最大便于观察的方块数量

2 4
1221
1221
2
3 2
22
22
22
2
3 3
111
121
111
3

提示

样例解释

在第一个样例中,按下“右移”按钮后,左侧会形成一个由 '1' 组成的便于观察的方块,而右侧会形成一个由 '2' 组成的便于观察的方块。

在第二个样例中,初始状态下屏幕上已经存在两个便于观察的方块。

在第三个样例中,例如通过依次按下“右移”和“下移”按钮,可以得到三个由 '1' 组成的便于观察的方块。

数据范围

子任务编号 分值 n,mn, m 必须通过的子任务
1 37 2n,m502 \le n, m \le 50
2 28 2n,m3002 \le n, m \le 300 1
3 35 2n,m10002 \le n, m \le 1000 1–2

翻译由 ChatGPT-5 完成