AT_abc454_f [ABC454F] Make it Palindrome 2
题目描述
给定一个正整数 $N$、一个正整数 $M$,以及一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。保证 $A$ 的每个元素都在 $0$ 到 $M-1$ 之间(包含 $0$ 和 $M-1$)。
你可以对整数序列 $A$ 进行如下操作任意次(可以为零次):
- 选择一对整数 $(l,r)$,满足 $1\le l\le r\le N$,然后把所有的 $A_i$($i=l,l+1,\ldots,r$)替换为 $(A_i+1)\bmod M$。
请你求出,将 $A$ 变为回文序列所需的最少操作次数。
这里,若对于所有 $i=1,2,\ldots,N$ 都有 $A_i=A_{N+1-i}$,则称 $A$ 是回文序列。
现在有 $T$ 组测试数据,请依次解答每组测试数据。
输入格式
输入从标准输入读入,格式如下:
> $T$
> $\text{case}_1$
> $\text{case}_2$
> $\vdots$
> $\text{case}_T$
每组测试数据格式如下:
> $N$ $M$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
对于每组测试数据,输出相应的答案,每个答案单独占一行。
说明/提示
### 样例解释 1
考虑第一组数据。
可以通过三次操作将 $A$ 变为回文序列,过程如下:
- 选择 $l=2,r=4$。此时 $A$ 变为 $(0,4,2,3)$。
- 选择 $l=3,r=4$。此时 $A$ 变为 $(0,4,3,4)$。
- 再选 $l=3,r=4$。此时 $A$ 变为 $(0,4,4,0)$。
无法用更少的操作将 $A$ 变为回文序列,因此输出 $3$。
### 数据范围
- $1\le T$
- $1\le N\le 2\times 10^5$
- $1\le M\le 10^9$
- $0\le A_i < M$
- 所有输入均为整数
- 所有测试数据中 $N$ 之和不超过 $2\times 10^5$。
由 ChatGPT 5 翻译