#4541. B. Stay or Mirror

B. Stay or Mirror

题目描述

给定一个长度为 nn 的排列 p1,p2,,pnp_1, p_2, \dots, p_n

你需要按照如下方式构造一个数组 a1,a2,,ana_1, a_2, \dots, a_n

  • 对于每个 1in1 \le i \le n,选择将 aia_i 设为 pip_i,或者设为 2npi2n - p_i

请找出数组 a1,a2,,ana_1, a_2, \dots, a_n 中可能出现的最少逆序对数量。

长度为 nn 的排列是指由 nn 个不同的整数组成,且这些整数均在 11nn 之间的数组。数组 aa 中的逆序对是指满足 1i<jn1 \le i < j \le nai>aja_i > a_j 的索引对 (i,j)(i, j)

输入格式

第一行输入一个整数 tt,表示测试用例的数量。

接下来每个测试用例包含两行:

  • 第一行输入一个整数 nn
  • 第二行输入 nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n,保证是一个排列。

保证所有测试用例的 nn 之和不超过 50005000

输出格式

对于每个测试用例,输出一行一个整数,表示数组 aa 中可能出现的最少逆序对数量。

样例

5
2
2 1
3
2 1 3
4
4 3 2 1
5
2 3 1 5 4
6
2 3 4 1 5 6
0
1
0
2
2

样例解释

  • 第一个测试用例:唯一的最优数组 aa[2,3][2, 3],逆序对数量为 00
  • 第二个测试用例:一个最优数组 aa[2,5,3][2, 5, 3],逆序对数量为 11;另一个可能的最优数组是 [2,1,3][2, 1, 3]

数据范围与提示

  • 1t10001 \le t \le 1000
  • 2n50002 \le n \le 5000
  • 1pin1 \le p_i \le npp 是排列。
  • 保证所有测试用例的 nn 之和不超过 50005000