CF1661A.Array Balancing

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Array Balancing

题目描述

给定两个长度为 nn 的数组:a1,a2,,ana_1, a_2, \dots, a_nb1,b2,,bnb_1, b_2, \dots, b_n

你可以进行如下操作任意次:

  1. 选择一个整数下标 ii1in1 \le i \le n);
  2. 交换 aia_ibib_i 的值。

请问,经过若干次(也可以不进行)操作后,能够得到的最小可能值是多少:

$$|a_1 - a_2| + |a_2 - a_3| + \dots + |a_{n-1} - a_n| + |b_1 - b_2| + |b_2 - b_3| + \dots + |b_{n-1} - b_n|$$

换句话说,求

$$\sum\limits_{i=1}^{n - 1}{\left(|a_i - a_{i+1}| + |b_i - b_{i+1}|\right)}$$

的最小值。

输入格式

第一行包含一个整数 tt1t40001 \le t \le 4000),表示测试用例的数量。接下来有 tt 组测试用例。

每组测试用例的第一行包含一个整数 nn2n252 \le n \le 25),表示数组 aabb 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9),表示数组 aa

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n1bi1091 \le b_i \le 10^9),表示数组 bb

输出格式

对于每组测试用例,输出一个整数,表示能够得到的最小可能值

$$\sum\limits_{i=1}^{n-1}{\left(|a_i - a_{i+1}| + |b_i - b_{i+1}|\right)}$$

说明/提示

在第一个测试用例中,例如可以交换 a3a_3b3b_3,以及 a4a_4b4b_4。此时数组 a=[3,3,3,3]a = [3, 3, 3, 3],数组 b=[10,10,10,10]b = [10, 10, 10, 10],和为 333+31010=03 \cdot |3 - 3| + 3 \cdot |10 - 10| = 0

在第二个测试用例中,数组已经是最小和(如上所述),等于 $|1 - 2| + \dots + |4 - 5| + |6 - 7| + \dots + |9 - 10| = 4 + 4 = 8$。

在第三个测试用例中,例如可以交换 a5a_5b5b_5

由 ChatGPT 4.1 翻译

样例

3
4
3 3 10 10
10 10 3 3
5
1 2 3 4 5
6 7 8 9 10
6
72 101 108 108 111 44
10 87 111 114 108 100
0
8
218

在线编程 IDE

建议全屏模式获得最佳体验