#CF513G3. Inversions problem

Inversions problem

Inversions problem

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

给定长度为 nn 的排列 p1,p2,…,pnp_1,p_2,\ldots,p_n。进行 kk 次独立随机操作:每次从所有满足 1≤l≤r≤n1\le l\le r\le n 的区间中等概率选择一个,并反转 pl,pl+1,…,prp_l,p_{l+1},\ldots,p_r 的顺序。

求操作结束后排列逆序对数量的期望值。

输入格式

第一行两个整数 n,kn,k。第二行 nn 个整数 p1,p2,…,pnp_1,p_2,\ldots,p_n,构成 11 到 nn 的排列。

输出格式

输出期望逆序对数。若答案的绝对误差或相对误差不超过 10−910^{-9},则视为正确。

样例输入 1

3 1
1 2 3

样例输出 1

0.833333333333333

样例输入 2

3 4
1 3 2

样例输出 2

1.458333333333334

数据范围

对于所有数据,1≤n≤1001\le n\le100,1≤k≤1091\le k\le10^9,且 pp 为 11 到 nn 的排列。

子任务编号 分值 特殊限制
1 30 n≤6n\le6 且 k≤4k\le4
2 n≤30n\le30 且 k≤200k\le200
3 40 无特殊限制

每个测试点独立计分。

说明

样例 1 中共有六个可选区间。反转两个长度为 22 的区间分别产生一个逆序对,反转整个排列产生三个逆序对,其余区间不改变排列,因此期望为 5/65/6。