Skip to content

11139: 【原1139】猴子排序法

题目

题目描述

author: Kuan Yang 原OJ链接:https://acm.sjtu.edu.cn/OnlineJudge-old/problem/1139

Description

猴子排序法是计算机科学中的一个著名的随机算法:对于n个数,每次随机一个1..n的排列,按此排列将这n个数重排,直到这n个数有序为止。这个算法又称bogo sort、bozo sort等。猴子排序法的名称来自猴子与打字机的故事(参见维基百科无限猴子定理)。Bogo sort的名字源自Quantum bogodynamics。 这个算法期望需要产生n!个排列才能将数列排好序,现在小k给出了一个改进版的猴子排序算法:假设a[1], a[2], .. a[n] 是1..n的一个排列,每次随机选择三个不同的位置 1 <= i < j < k <= n,随机交换 a[i],a[j],a[k](从六种等可能的情况中等概率选择一种)。假设交换不需要时间,小k想知道期望多少次之后,整个数 组变成有序的(既使得a[i] = i 对于所有i = 1, 2, 3 .. n)。

Input Format

第一行为正整数n和q,n见问题叙述,q表示总共给出的初始排列个数。(4 <= n <= 11,1 <= q <= 1000) 接下来q行,每行n个数,表示初始的一个排列。

Output Format

一共q行,每行一个数,向下取整到整数,表示对应初始排列变成有序的期望步数。

Sample Input

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

Sample Output

0
152

Oops! 本题目还没有解答!

助教老师们编题的速度,已经超过了解题的速度!

OJ翻了一新,但本解答集还大多用的是2017-2019级,甚至更早的同学们贡献的答案。

如果你已经AC了,可以的话,请您参考添加页面,与大家一起分享你的题解!