#P13400. [GCJ 2010 #2] World Cup 2010

[GCJ 2010 #2] World Cup 2010

Description

四年一度的世界杯又来了,Varva 正赶往南非,正好赶上淘汰赛阶段。

在淘汰赛阶段,每场比赛必定有一个胜者;获胜的队伍晋级下一轮,失败的队伍则被淘汰。共有 2P2^P 支队伍参加本阶段比赛,编号为 002P12^P - 1。淘汰赛共进行 PP 轮。每一轮中,每支剩余的队伍都恰好参加一场比赛。每轮的对阵顺序是:依次选择剩余队伍中编号最小的两支队伍,将它们配对进行比赛。每一轮所有比赛结束后,下一轮开始。

为了决定看哪些比赛,Varva 根据自己对各支队伍的喜好,列出了一些限制条件。具体来说,对于每支队伍 ii,他最多愿意错过 M[i]M[i] 场该队参加的比赛。

Varva 需要提前购买一组门票,以确保无论比赛结果如何,他的偏好都能被满足。同时,他希望花的钱尽可能少。你的目标是计算他至少需要花多少钱买门票。

门票需要在比赛开始前提前购买,每场比赛的门票价格已知。注意,在小数据中,所有比赛的门票价格相同;而在大数据中,价格可能不同。

示例

上图给出了一个比赛日程及门票价格。假设限制条件为 M={1,2,3,2,1,0,1,2,3}M = \{1, 2, 3, 2, 1, 0, 1, 2, 3\},最优策略如下:由于不能错过队伍 55 的任何比赛,需要花 50,400,80050, 400, 800 买下队伍 55 可能参加的所有比赛门票。此时,其他队伍的限制也都被满足,除了队伍 00。为满足队伍 00 的限制,最好的办法是再买下队伍 00 第一轮比赛的门票,需再花 100100,总共花费 13501350

Input Format

输入的第一行为测试用例数 TT。接下来是 TT 组测试数据。每组测试数据第一行为一个整数 PP。下一行为 2P2^P 个整数,分别为 M[0],...,M[2P1]M[0], ..., M[2^P-1]

接下来的 PP 行给出了所有比赛的门票价格:第一行为第一轮的 2P12^{P-1} 个比赛门票价格,第二行为第二轮的 2P22^{P-2} 个比赛门票价格,依此类推。最后一行为决赛的门票价格。门票价格按照比赛进行的顺序给出。

Output Format

对于每个测试用例,输出一行,格式为 "Case #x: y",其中 xx 为测试用例编号(从 1 开始),yy 为 Varva 至少需要花费的门票总金额。

2
2
1 1 0 1
1 1
1
3
1 2 3 2 1 0 1 3
100 150 50 90
500 400
800
Case #1: 2
Case #2: 1350

Hint

数据范围

  • 1T501 \leq T \leq 50
  • 1P101 \leq P \leq 10
  • MM 中每个元素为 00PP 之间的整数(包含 00PP

小数据(10 分,测试点 1 - 可见)

  • 所有门票价格均为 1。

大数据(15 分,测试点 2 - 隐藏)

  • 所有门票价格为 00100000100000 之间的整数(包含 00100000100000)。

由 ChatGPT 4.1 翻译