QOJ.ac

QOJ

时间限制: 4.0 s 内存限制: 1024 MB 总分: 100 难度: [显示] 可 Hack ✓

#7013. 六花与蚂蚁

统计

每当 Rikka 面对壮丽的自然景观时,她总会想起一队匆忙行进的蚂蚁。Rikka 热爱蚂蚁,并在她的抽屉里饲养了两大群蚂蚁。观察蚂蚁匆忙行进的生活方式已经成为了她生活的一部分。

因此,她在抽屉里准备了 $n$ 个不同的巢穴,这些巢穴之间由 $n$ 条无向通道连接,形成一个环形轨道。所有巢穴按顺序编号为 $1$ 到 $n$,且通道的长度已知。第一群蚂蚁居住在第 $s_1$ 个巢穴,第二群蚂蚁居住在第 $s_2$ 个巢穴。

现在,蚂蚁们决定一起搬到新的巢穴。这两群蚂蚁的新家分别是第 $e_1$ 个巢穴和第 $e_2$ 个巢穴。

对于每一群蚂蚁,所有蚂蚁都必须排成一队,沿着一条路径从起点爬向终点。它们不能分成几组沿着不同的路径爬行。然后,它们可以使用所选路径中通道的总长度来衡量其搬迁计划的复杂度。

如果这两群蚂蚁选择的路径共享了一些公共通道,为了安全起见,它们会缓慢地穿过这些通道。具体来说,对于每一条公共通道,我们可以认为其测量长度变为原来的三倍。

蚂蚁非常聪明,它们都希望在不进行协商的情况下,各自最大限度地降低其计划的复杂度。它们只知道通道的长度,以及各自蚁群和另一蚁群的起点和终点。

Rikka 希望你计算出每群蚂蚁计划的期望复杂度。关于最佳策略的更多细节,请参考说明。

输入格式

输入包含多个测试用例,第一行包含一个整数 $T$ ($1 \le T \le 5000$),表示测试用例的数量。

对于每个测试用例,第一行包含一个整数 $n$ ($2 \le n \le 50$),表示巢穴的数量,也是它们之间通道的数量。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 50$),其中第 $i$ 个数 $a_i$ 表示第 $i$ 个巢穴与第 $((i \pmod n) + 1)$ 个巢穴之间无向通道的长度。保证 $n$ 条通道的总长度为奇数。

第三行包含四个整数 $s_1, e_1, s_2, e_2$ ($1 \le s_1, s_2, e_1, e_2 \le n, s_1 \neq e_1, s_2 \neq e_2$),分别表示这两群蚂蚁居住的原始巢穴和它们的新巢穴。

输出格式

对于每个测试用例,输出一行,包含两个用空格分隔的数字,分别表示第一群蚂蚁和第二群蚂蚁的期望复杂度。如果你的输出与 Rikka 的答案之间的绝对误差或相对误差不超过 $10^{-9}$,则认为你的答案是正确的。形式化地,设你的答案为 $a$,Rikka 的答案为 $b$,如果 $\frac{|a-b|}{\max(1,|b|)} \le 10^{-9}$,则认为你的答案正确。

样例

输入 1

2
5
1 5 2 4 3
1 2 3 4
5
1 5 2 4 3
1 3 2 4

输出 1

1.000000000000000 2.000000000000000
14.666666666666667 14.666666666666667

说明

我们所讨论的包括策略、最佳策略和期望,实际上是关于纳什均衡和混合策略的内容。

在博弈论中,当玩家选择在可用动作集上进行随机化时,称该玩家使用了混合策略。形式上,混合策略是一个概率分布,它为每个可用动作分配被选中的可能性。如果只有一个动作被选中的概率大于零,则称该玩家使用了纯策略。在第一个样例中,两群蚂蚁的最佳策略都是纯策略。

混合策略组合是博弈中每个玩家策略的列表。混合策略组合会诱导出一个关于博弈可能结果的概率分布或彩票。在这个问题中,策略组合就是我们之前讨论的那些计划。

纳什均衡(混合策略)是一种策略组合,其性质是没有任何单个玩家可以通过单方面偏离到另一种策略,从而诱导出他或她认为严格更优的彩票。1950 年,数学家约翰·纳什证明了每个具有有限玩家和动作集合的博弈至少存在一个均衡。

在这个问题中,你需要找到一个纳什均衡。你可能会发现几个不同的均衡。如果其中一些具有相同的单方面策略,它们的收益必须是恒定的。

我们还需要讨论当存在多个没有固定单方面策略的均衡时的情况。注意,在这种情况下,我们有一个唯一的混合、非纯策略均衡。由于蚂蚁喜欢炫耀它们的智慧,这个均衡正是它们最终的选择。

在第二个测试用例中,虽然我们有三个不同的均衡,其收益分别为 $(8, 10)$、$(13, 11)$ 和 $(14.666\dots, 14.666\dots)$,但最后一个是唯一具有混合、非纯策略的均衡,因此这正是我们所需要的。

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.