#CF1753C. 但愿我学过排序

但愿我学过排序

但愿我学过排序

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

题目描述

给定一个长度为 nn 的二进制数组。反复执行以下操作,直到数组非降序排列:

  1. 在所有 1≤i<j≤n1\le i<j\le n 的下标对中等概率随机选择一对 (i,j)(i,j);
  2. 若 ai>aja_i>a_j,交换 ai,aja_i,a_j,否则数组不变。

求数组变得有序之前执行操作次数的期望。答案可写成最简分数 p/qp/q,且 q≢0(mod998244353)q\not\equiv0\pmod{998244353}。输出 p⋅q−1 mod 998244353p\cdot q^{-1}\bmod998244353。

输入格式

第一行包含测试组数 tt。每组第一行包含 nn,第二行包含 nn 个整数 aia_i。

输出格式

对每组输出一行所求期望的模意义结果。

样例输入 1

3
3
0 1 0
5
0 0 1 1 1
6
1 1 1 0 0 1

样例输出 1

3
0
249561107

数据范围

对所有数据,1≤t≤1051\le t\le10^5,1≤n≤2000001\le n\le200000,ai∈{0,1}a_i\in\{0,1\},且 ∑n≤200000\sum n\le200000。

子任务编号 分值 特殊限制
1 30 每组均满足 n≤8n\le 8
2 整个输入满足 ∑n≤5000\sum n\le 5000
3 40 无特殊限制