QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 2048 MB 満点: 100

#8685. 集装箱洗牌

統計

宏伟的货船每天都在世界各地的海洋上航行,每艘船都载有数千个集装箱。它们的高效运作使得现代贸易成为可能,将货物运往世界各地所需的成本仅需几便士。

Cargo containers by Martini171 via Wikimedia Commons, cc by-sa

当船只到达目的地后,标准尺寸的集装箱会被从船上卸下,堆放在陆地上的堆场中,随后再由火车或卡车运往目的地。事实证明,移动集装箱的成本很高,因此港口运营商试图尽量减少运送货物所需的移动次数。

在本题中,我们考虑这样一个集装箱卸货场景。我们需要卸下 $n$ 个集装箱,并将它们放入两个从底向上堆叠的栈中。每个集装箱的放置位置是随机的,以相等的概率被放入第一个栈或第二个栈(与其他集装箱无关)。一旦所有集装箱卸载完毕,它们将按照给定的顺序被卡车取走。当卡车想要装载某个特定集装箱时,有两种情况:如果该集装箱位于其所在栈的顶部,则可以直接将其移至卡车,无需移动任何其他集装箱。否则,必须将集装箱从一个栈移动到另一个栈,直到所需的集装箱位于其所在栈的顶部。此时,该集装箱可以被移至卡车。

例如,考虑三个集装箱按 $1, 2, 3$ 的顺序到达的情况。假设 $1$ 和 $3$ 在第一个栈中,$2$ 在第二个栈中。如果集装箱按 $1, 2, 3$ 的顺序装上卡车,则需要进行五次移动:

栈 1 栈 2 说明
1 3 2 初始配置(栈从底向上)
1 2 3 将集装箱 3 从栈 1 移至栈 2
2 3 将集装箱 1 移至卡车
3 2 将集装箱 3 从栈 2 移至栈 1
3 将集装箱 2 移至卡车
将集装箱 3 移至卡车

表 Q.1:按 $1, 2, 3$ 顺序请求的集装箱移动示例。

我们想知道将所有集装箱交付给客户需要多少次移动。假设集装箱的放置是随机的,请计算给定卡车装载顺序下所需的期望移动次数。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 10^6$),表示集装箱的数量。集装箱编号为 $1, 2, \dots, n$,并按此顺序从船上卸下。第二行包含 $n$ 个整数 $a_1, \dots, a_n$。这些数字是 $\{1, 2, \dots, n\}$ 的一个排列,指定了集装箱装上卡车的顺序。

输出格式

输出将集装箱装上卡车所需的期望移动次数——这不包括从船上卸下它们的成本,但包括在栈之间移动以及从栈移动到卡车的成本。你的答案的绝对误差应不超过 $10^{-3}$。

样例

输入格式 1

5
4 2 5 3 1

输出格式 1

7.000

输入格式 2

6
1 2 3 4 5 6

输出格式 2

13.500

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.