CF351B Jeff and Furik

题目描述

Jeff 和 Furik 成为了朋友。现在这两个人要玩一个非常有趣的游戏。 游戏开始时,Jeff 拿出一张纸,写下了一个由 $n$ 个数字组成的排列:$p_1, p_2, \ldots, p_n$。接下来两人轮流进行操作,Jeff 先手。在自己的回合,Jeff 可以选择任意一对相邻的排列元素,将它们交换位置。在 Furik 的回合,他会掷一枚硬币,如果硬币为“正面”,他会在所有 $p_i > p_{i+1}$ 的相邻对 $(i, i+1)$ 中,等概率随机选择一对进行交换;如果硬币为“反面”,他会在所有 $p_i < p_{i+1}$ 的相邻对 $(i, i+1)$ 中,等概率随机选择一对进行交换。如果 Furik 掷出某一面但没有可选对,则他会重新掷一次。游戏在排列变为升序时结束。 Jeff 想让游戏尽快结束(即让两人总的操作步数尽可能少)。请你帮助 Jeff 计算,在他最优操作的情况下,本游戏的最小期望操作次数。 你可以认为硬币的正反面概率均为 $50\%$。

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 3000$)。 第二行包含 $n$ 个两两不同的整数 $p_1, p_2, \ldots, p_n$($1 \le p_i \le n$)——排列 $p$。数字以空格分隔。

输出格式

输出一个实数,表示本问题的答案。若输出的答案与标准答案的绝对或相对误差不超过 $10^{-6}$,则视为正确。

说明/提示

在第一个测试样例中,序列已经升序排列,因此答案是 $0$。 由 ChatGPT 5 翻译