#4541. B. Stay or Mirror
B. Stay or Mirror
B. Stay or Mirror
题目描述
给定一个长度为 n 的排列 p₁, p₂, …, pₙ。
你需要按照如下方式构造一个数组 a₁, a₂, …, aₙ:
- 对于每个 1 ≤ i ≤ n,选择将 aᵢ 设为 pᵢ,或者设为 2n - pᵢ。
请找出数组 a₁, a₂, …, aₙ 中可能出现的最少逆序对数量。
长度为 n 的排列是指由 n 个不同的整数组成,且这些整数均在 1 到 n 之间的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是(2 出现了两次),[1,3,4] 也不是(n=3 但数组中有 4)。
数组 a₁, a₂, …, aₙ 中的逆序对是指满足 1 ≤ i < j ≤ n 且 aᵢ > aⱼ 的索引对 (i, j)。
输入格式
每个测试包含多组测试用例。第一行输入测试用例的数量 t(1 ≤ t ≤ 1e3)。 每个测试用例的第一行输入一个整数 n(2 ≤ n ≤ 5e3)。 第二行输入 n 个整数 p₁, p₂, …, pₙ(1 ≤ pᵢ ≤ n),保证这是一个排列。 保证所有测试用例的 n 之和不超过 5e3。
输出格式
对于每个测试用例,输出一个整数 —— 数组 a 中可能的最少逆序对数量。
样例输入
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
提示
在第一个测试用例中,唯一的最优数组 a 是 [2, 3],逆序对数量为 0。 在第二个测试用例中,一个最优数组 a 是 [2, 5, 3],逆序对数量为 1。另一个可能的最优数组 a 是 [2, 1, 3]。