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 翻译