CF2129B Stay or Mirror
题目描述
给定一个长度为 $n$ 的排列 $p_1, p_2, \ldots, p_n$。
你需要按照如下方式构造一个数组 $a_1, a_2, \ldots, a_n$:
- 对于每个 $1 \leq i \leq n$,可以选择 $a_i = p_i$ 或 $a_i = 2n - p_i$。
请你求出数组 $a_1, a_2, \ldots, a_n$ 中最小可能的逆序对数量。
一个长度为 $n$ 的排列是由 $n$ 个 $1$ 到 $n$ 的不同整数按任意顺序组成的数组。例如,$[2,3,1,5,4]$ 是一个排列,但 $[1,2,2]$ 不是排列($2$ 在数组中出现了两次),$[1,3,4]$ 也不是排列($n=3$,但数组中出现了 $4$)。
在数组 $a_1, a_2, \ldots, a_n$ 中,逆序对指的是一对下标 $(i, j)$,满足 $1 \leq i < j \leq n$ 且 $a_i > a_j$。
输入格式
每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 10^3$),表示测试数据组数。
每组测试数据的第一行包含一个整数 $n$($2 \le n \le 5 \cdot 10^3$)。
每组测试数据的第二行包含 $n$ 个整数 $p_1, p_2, \ldots, p_n$($1 \le p_i \le n$)。保证 $p_1, p_2, \ldots, p_n$ 是一个排列。
保证所有测试数据中 $n$ 的总和不超过 $5 \cdot 10^3$。
输出格式
对于每组测试数据,输出一个整数,表示数组 $a$ 的最小逆序对数量。
说明/提示
在第一个测试用例中,唯一最优的数组 $a$ 是 $[2, 3]$,逆序对数量为 $0$。
在第二个测试用例中,一个最优的数组 $a$ 是 $[2, 5, 3]$,逆序对数量为 $1$。另一个可能的最优数组 $a$ 是 $[2, 1, 3]$。
由 ChatGPT 4.1 翻译