CF351B.Jeff and Furik
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Jeff has become friends with Furik. Now these two are going to play one quite amusing game.
At the beginning of the game Jeff takes a piece of paper and writes down a permutation consisting of n numbers: _p_1, _p_2, ..., p__n. Then the guys take turns to make moves, Jeff moves first. During his move, Jeff chooses two adjacent permutation elements and then the boy swaps them. During his move, Furic tosses a coin and if the coin shows "heads" he chooses a random pair of adjacent elements with indexes i and i + 1, for which an inequality p__i > p__i + 1 holds, and swaps them. But if the coin shows "tails", Furik chooses a random pair of adjacent elements with indexes i and i + 1, for which the inequality p__i < p__i + 1 holds, and swaps them. If the coin shows "heads" or "tails" and Furik has multiple ways of adjacent pairs to take, then he uniformly takes one of the pairs. If Furik doesn't have any pair to take, he tosses a coin one more time. The game ends when the permutation is sorted in the increasing order.
Jeff wants the game to finish as quickly as possible (that is, he wants both players to make as few moves as possible). Help Jeff find the minimum mathematical expectation of the number of moves in the game if he moves optimally well.
You can consider that the coin shows the heads (or tails) with the probability of 50 percent.
杰夫与弗里克成为了朋友。现在,这两人将一起玩一个非常有趣的游戏。
游戏开始时,杰夫在一张纸上写下了一个由 n 个数组成的排列:p1,p2,…,pn。随后两人轮流进行操作,杰夫先手。在自己的回合中,杰夫选择两个相邻的排列元素并将它们交换。在自己的回合中,弗里克抛一枚硬币;若硬币为“正面”,则他在所有满足 pi>pi+1 的相邻位置对 (i,i+1) 中随机均匀地选择一对并交换其元素;若硬币为“反面”,则他在所有满足 pi<pi+1 的相邻位置对 (i,i+1) 中随机均匀地选择一对并交换其元素。若硬币结果为“正面”或“反面”,但弗里克当前没有符合条件的相邻对可选,则他重新抛一次硬币。当排列变为严格递增顺序(即已排序)时,游戏结束。
杰夫希望游戏尽快结束(即双方总操作次数尽可能少)。请帮助杰夫求出:在他采取最优策略的前提下,游戏中总操作次数的最小数学期望值。
你可以认为硬币出现“正面”或“反面”的概率均为 50%。
输入格式
The first line contains integer n (1 ≤ n ≤ 3000). The next line contains n distinct integers _p_1, _p_2, ..., p__n (1 ≤ p__i ≤ n) — the permutation p. The numbers are separated by spaces.
第一行包含一个整数 n(1≤n≤3000)。第二行包含 n 个互不相同的整数 p1,p2,…,pn(1≤pi≤n)——即排列 p。这些数字以空格分隔。
输出格式
In a single line print a single real value — the answer to the problem. The answer will be considered correct if the absolute or relative error doesn't exceed 10 - 6.
在一行中输出一个实数值——即该问题的答案。若答案的绝对误差或相对误差不超过 10−6,则视为正确。
输入输出样例
输入#1
2 1 2
输出#1
0.000000
输入#2
5 3 5 2 4 1
输出#2
13.000000
说明/提示
In the first test the sequence is already sorted, so the answer is 0.
在第一个测试中,序列已经排好序,因此答案为 0。
输入解题思路,AI测评打分。不知道怎么写?