#P1682. Clans on the Three Gorges
Clans on the Three Gorges
本题没有可用的提交语言。
在长江三峡的岸边居住着一些古老的部落。由于历史原因,同一峡谷上的部落彼此仇视,经常为了土地和资源发生冲突。相反,他们与其他峡谷上的部落有着悠久而深厚的友谊。但由于长江水流湍急,他们很难前往峡谷的另一边。
有一天,他们决定在峡谷之间建造悬索桥。三峡有三个岸边(如图1所示),每个岸边地势起伏,因此各部落所处的海拔高度不同。同一岸边的每个部落都不会与其他部落共用一座桥,因此每个部落必须至少有一座属于自己的桥。出于安全原因,桥梁不允许在空中交叉,否则一旦一座桥坍塌,就会砸到另一座桥上。专家指出,如果一座桥两端的海拔高度不同,建造起来会很麻烦,成本也会更高。据估计,一座桥的成本等于其两端的海拔高度差。这些部落并不富裕,因此他们聘请你寻找一种解决方案,以最低的成本建造满足需求的悬索桥。
如图1所示,三个峡谷分别命名为X、Y和Z。每个部落用一个圆圈表示,圆圈内标有其名称和海拔高度。峡谷X上的部落按逆时针顺序命名为x1、x2……xn;峡谷Y和Z上的部落也按逆时针顺序分别命名为y1、y2……ym和z1、z2……zk。一座桥用一条连接两个部落的线表示,线上标有其成本。根据题目的描述,任何两条线(桥)都不能相交,且每个部落的度数都不能为0(即每个部落都必须有桥连接)。
例如,图2是一个无效的解决方案,因为两座桥相交了;图3也是无效的,因为部落y1没有属于自己的桥。图1和图4都是有效的解决方案,因为它们既没有相交的桥,也没有孤立的部落。一个解决方案的总成本是其中所有桥的成本之和,而一座桥的成本等于其两端部落海拔高度差的绝对值。因此,图1的成本为11,图4的成本为14,显然图1是更好的解决方案。事实上,它是最优解决方案之一。你的任务是编写一个程序,找出最小成本。
输入
输入包含T个测试用例。第一行包含一个整数T(1 ≤ T ≤ 10)。接下来是T个测试用例。每个测试用例的第一行包含三个整数n、m、k(1 ≤ n, m, k ≤ 100),分别表示峡谷X、Y、Z上的部落数量。接下来的三行分别包含这三个峡谷上各部落的海拔高度,海拔高度是小于100的正整数。测试用例之间用空行分隔。部落的命名方式如图1的说明所示,它们的名称也对应着各自的海拔高度。因此,一个测试用例的输入格式如下:
n m k
x1 x2 x3 ... xn
y1 y2 y3 ... ym
z1 z2 z3 ... zk
输出
输出包含T个整数,每行对应一个测试用例的最小成本。
输入数据示例
2
3 3 3
4 4 3
6 1 2
3 6 1
1 1 2
1
5
2 3
输出数据示例
11
5