QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 512 MB 總分: 100

#172. 最优锦标赛

统计

在 21XX 年,“日本算法大师大奖赛 (JAG)”已成为最受欢迎的智力运动赛事之一。作为 JAG 的主席,你正在筹备今年的 JAG 比赛。

JAG 采用淘汰赛制。今年,将有 $N$ 名选手参加 JAG。比赛可以用一棵拥有 $N$ 个叶子节点的二叉树来表示,选手们一一对应地分配到这些叶子节点上。在每一场比赛中,两名选手进行对决。胜者晋级下一轮,败者被淘汰。最终只有一名选手能战胜所有其他选手成为冠军。决赛对应于二叉树的根节点。

已知每位选手的实力 $A_1, A_2, \dots, A_N$,用整数表示。当两名选手对决时,实力较强的一方总是获胜。如果实力相同,则胜者随机决定。

在过去的 JAG 比赛中,一些观众抱怨单方面的比赛太多,显得很无聊。为了让 JAG 更具吸引力,你希望找到一种好的比赛配置。

我们定义比赛和锦标赛的“无聊度”。对于一场由第 $i$ 位选手和第 $j$ 位选手进行的比赛,我们定义该场比赛的无聊度为两人实力之差 $|A_i - A_j|$。锦标赛的无聊度定义为锦标赛中所有比赛无聊度之和。

你的目标是最小化锦标赛的无聊度。

你可以考虑任何形状的锦标赛,包括非平衡的锦标赛,前提是锦标赛的高度必须小于或等于 $K$。锦标赛的高度定义为从根节点到二叉树任意叶子节点的最长简单路径上的比赛场数。

该图展示了样例输入 1 的两种可能的锦标赛配置。左侧配置的高度为 2,右侧配置的高度为 3。

编写一个程序,计算锦标赛的最小无聊度。

输入格式

第一行包含两个整数 $N$ ($2 \le N \le 1,000$) 和 $K$ ($1 \le K \le 50$)。你可以假设 $N \le 2^K$。第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$。$A_i$ ($1 \le A_i \le 10^5$) 表示第 $i$ 位选手的实力。

输出格式

输出最优锦标赛配置所能达到的最小无聊度。

样例

输入 1

4 3
1 3 4 7

输出 1

6

输入 2

5 3
1 3 4 7 9

输出 2

10

输入 3

18 7
67 64 52 18 39 92 84 66 19 64 1 66
35 34 45 2 79 34

输出 3

114

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.