CF1661A Array Balancing

题目描述

给定两个长度为 $n$ 的数组:$a_1, a_2, \dots, a_n$ 和 $b_1, b_2, \dots, b_n$。 你可以进行如下操作任意次: 1. 选择一个整数下标 $i$($1 \le i \le n$); 2. 交换 $a_i$ 和 $b_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)} $$ 的最小值。

输入格式

第一行包含一个整数 $t$($1 \le t \le 4000$),表示测试用例的数量。接下来有 $t$ 组测试用例。 每组测试用例的第一行包含一个整数 $n$($2 \le n \le 25$),表示数组 $a$ 和 $b$ 的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$),表示数组 $a$。 第三行包含 $n$ 个整数 $b_1, b_2, \dots, b_n$($1 \le b_i \le 10^9$),表示数组 $b$。

输出格式

对于每组测试用例,输出一个整数,表示能够得到的最小可能值 $$ \sum\limits_{i=1}^{n-1}{\left(|a_i - a_{i+1}| + |b_i - b_{i+1}|\right)} $$

说明/提示

在第一个测试用例中,例如可以交换 $a_3$ 和 $b_3$,以及 $a_4$ 和 $b_4$。此时数组 $a = [3, 3, 3, 3]$,数组 $b = [10, 10, 10, 10]$,和为 $3 \cdot |3 - 3| + 3 \cdot |10 - 10| = 0$。 在第二个测试用例中,数组已经是最小和(如上所述),等于 $|1 - 2| + \dots + |4 - 5| + |6 - 7| + \dots + |9 - 10| = 4 + 4 = 8$。 在第三个测试用例中,例如可以交换 $a_5$ 和 $b_5$。 由 ChatGPT 4.1 翻译