#P6898. [ICPC 2014 WF] Metal Processing Plant

[ICPC 2014 WF] Metal Processing Plant

Description

Yulia 在叶卡捷琳堡的一家金属加工厂工作。该工厂处理从乌拉尔山脉开采的矿石,从中提取黄铜矿、铂金和黄金等贵金属。每个月,工厂会收到 nn 批未加工的矿石。Yulia 需要根据相似性将这些矿石分成两组。然后,每组被送往工厂的两个矿石加工建筑之一。

为了进行这种划分,Yulia 首先为每对矿石 1in1 \le i \le n1jn1 \le j \le n 计算一个数值距离 d(i,j)d(i, j),距离越小,矿石 iijj 越相似。对于矿石的一个子集 S{1,,n}S \subseteq \{ 1, \ldots , n\} ,她定义 SS 的差异度 DD 为子集中一对矿石之间的最大距离,即,

D(S)=maxi,jSd(i,j).D(S) = \max _{i, j \in S} d(i, j).

然后,Yulia 将矿石划分为两个子集 AABB,使得它们的差异度之和 D(A)+D(B)D(A) + D(B) 最小。你的任务是帮助她找到这种划分。

Input Format

输入由一个单一的测试用例组成。第一行包含一个整数 nn (1n2001 \le n \le 200),表示矿石的数量。接下来的 n1n - 1 行包含距离 d(i,j)d(i,j)。这些行的第 ii 行包含 nin - i 个整数,该行的第 jj 个整数给出 d(i,i+j)d(i, i+j) 的值。距离是对称的,因此 d(j,i)=d(i,j)d(j, i) = d(i, j),且矿石自身的距离为 00。所有距离都是 0010910^9(含)之间的整数。

Output Format

输出将矿石划分为两组的差异度之和的最小可能值。

5
4 5 0 2
1 3 7
2 0
4

4

7
1 10 5 5 5 5
5 10 5 5 5
100 100 5 5
10 5 5
98 99
3

15

Hint

时间限制:2000 毫秒,内存限制:1048576 kB。

国际大学生程序设计竞赛(ACM-ICPC)世界总决赛 2014。

题面翻译由 ChatGPT-4o 提供。