QOJ.ac

QOJ

Time Limit: 30 s Memory Limit: 2048 MB Total points: 14

#12498. 收集煎饼

Statistics

Alice 和 Bob 都很爱吃甜食,他们准备玩一个收集煎饼的游戏。桌上排成一排有 $N$ 堆煎饼,编号从 $1$ 到 $N$。第 $i$ 堆煎饼恰好有 $A_i$ 个。Alice 和 Bob 将轮流选择并领取完整的煎饼堆。在第一回合,Alice 必须选择一个编号在 $[L_a, R_a]$ 范围内的煎饼堆(包含边界)并将其领取。然后,Bob 必须选择一个编号在 $[L_b, R_b]$ 范围内(包含边界)且与 Alice 所选不同的煎饼堆并将其领取。

在后续的回合中,每个人都必须选择一个未被领取的、且与自己之前领取过的某堆煎饼相邻的煎饼堆。也就是说,对于 Alice 而言,如果要在第一回合之后领取第 $i$ 堆煎饼,她必须在之前的回合中已经领取过第 $i-1$ 堆或第 $i+1$ 堆。Bob 的规则也是如此。如果某位玩家在某一回合没有合法的选择,他们将跳过该回合,不领取任何煎饼堆。

当所有煎饼堆都被领取完毕时,游戏结束。此时,Alice 收集她所领取的所有煎饼堆中的煎饼,Bob 收集他所领取的所有煎饼堆中的煎饼。

Alice 希望自己能尽可能多地收集煎饼,Bob 也希望自己能尽可能多地收集煎饼。如果两人都采取最优策略,请你帮助 Alice 计算她最多能收集多少个煎饼。

输入格式

输入的第一行包含一个整数 $T$,表示测试用例的数量。接下来是 $T$ 个测试用例。每个测试用例包含三行。

每个测试用例的第一行包含一个整数 $N$,表示煎饼堆的数量。

第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$,其中 $A_i$ 表示第 $i$ 堆煎饼的数量。

第三行包含 $4$ 个整数 $L_a, R_a, L_b, R_b$,分别表示 Alice 和 Bob 在第一回合可以选择的煎饼堆编号范围(包含边界)。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 Alice 在双方最优博弈下能收集到的最大煎饼数量。

数据范围

$1 \le T \le 100$ $1 \le A_i \le 10^9$ $1 \le L_a \le R_a \le N$ $1 \le L_b \le R_b \le N$ 保证 $L_a \le L_b = R_b \le R_a$ 不成立。(保证无论 Alice 如何选择,Bob 在第一回合总能选到一堆煎饼。)

子任务

测试集 1(可见结果):$2 \le N \le 100$ 测试集 2(可见结果):$2 \le N \le 10^5$

样例

样例输入 1

3
5
30 50 40 20 10
1 2 4 5
5
20 20 80 10 10
1 4 2 5
4
90 10 10 10
1 4 1 4

样例输出 1

Case #1: 120
Case #2: 100
Case #3: 90

说明

在样例 1 中,有 5 堆煎饼,数量分别为 30, 50, 40, 20, 10。Alice 在游戏开始时可以选择第 1 或第 2 堆,Bob 可以选择第 4 或第 5 堆。一种双方都采取最优策略的方式是: 1. 开始时,Alice 领取第 2 堆,然后 Bob 领取第 4 堆。 2. Alice 在她的第二回合领取第 3 堆,然后 Bob 在他的第二回合领取第 5 堆。 3. Alice 在她的第三回合领取第 1 堆,随后游戏结束,因为所有堆都已被领取。 游戏结束时,Alice 领取了第 1, 2, 3 堆,Bob 领取了第 4, 5 堆。Alice 收集的煎饼数量为 $30 + 50 + 40 = 120$。

在样例 2 中,一种最优策略是: 1. 开始时,Alice 领取第 3 堆,然后 Bob 领取第 2 堆。 2. Alice 在她的第二回合领取第 4 堆,然后 Bob 在他的第二回合领取第 1 堆。 3. Alice 在她的第三回合领取第 5 堆,随后游戏结束。 Alice 收集的煎饼数量为 $80 + 10 + 10 = 100$。

在样例 3 中,两人在第一回合都可以选择任何一堆。由于第 1 堆比其他所有堆加起来还要有价值,Alice 在 Bob 之前领取了它。然后,Bob 可以领取第 2 堆,导致 Alice 不得不跳过她后续的所有回合。最终 Alice 获得了 90 个煎饼,而 Bob 只获得了 30 个。

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.