AT_pakencamp_2025_day1_k Good Grid
题目描述
有一个长度为 $NM$ 的数列 $A$,开始时每个元素的值都是 $0$ 或 $1$。你可以对该数组进行任意多次如下操作:
- 选择满足 $1 \leq l \leq r \leq NM$ 的整数 $l, r$,将 $A_l, A_{l+1}, \ldots, A_r$ 的值全部反转。
操作结束后,需要使 $A$ 满足如下条件:
- 对于每个满足 $1 \leq i \leq M$ 的 $i$,都满足 $A_i = A_{i+M} = A_{i+2M} = \ldots = A_{i+(N-1)M}$。
请你求出满足条件所需操作次数的最小值。
输入格式
输入通过标准输入按以下格式给出。
> $N$ $M$ $A_1$ $A_2$ $\ldots$ $A_M$ $A_{M+1}$ $A_{M+2}$ $\ldots$ $A_{2M}$ $\vdots$ $A_{(N-1)M+1}$ $A_{(N-1)M+2}$ $\ldots$ $A_{NM}$
输出格式
请输出最小操作次数。
说明/提示
### 样例解释 1
首先,进行 $l=7, r=7$ 的操作后如下所示:
```
1 0 0 1
0 1 1 0
1 1 1 0
```
然后,进行 $l=2, r=5$ 的操作后如下所示,满足条件:
```
1 1 1 0
1 1 1 0
1 1 1 0
```
此时所需操作次数为 $2$,且不可能用 $1$ 次以下的操作满足条件,所以输出 $2$。
### 样例解释 2
对于第 $2, 4, 6$ 行的所有元素依次进行如下操作:
- $l=7, r=12$
- $l=19, r=24$
- $l=31, r=36$
共 $3$ 次操作可达到要求,这也是操作次数的最小值。
### 样例解释 3
当 $N=1$ 时,数组总是满足条件,无需任何操作,此时输出 $0$。
### 约束条件
- $1 \leq N, M \leq 2000$
- $A_i$ 仅为 $0$ 或 $1$($1 \leq i \leq NM$)
- 所有输入均为整数。
由 ChatGPT 5 翻译