#57590. 神秘数列

神秘数列

暂无测试数据。

蒜头君发现一个长度为 $n$ 的神秘数列 $a$,他想要分析这个数列的神秘程度。

分析过程:首先,用数列 $a$ 生成一个 $1\sim n$ 的排列 $b$,满足所有的 $b_i$ 是 $a_i$ 的倍数。

$1\sim 3$ 的所有排列:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

其次,将数列 $b$ 划分为两种:

  • 第一种:数列 $b$ 的逆序对数量为偶数。
  • 第二种:数列 $b$ 的逆序对数量为奇数。

在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。例如 $1,3,2,1$ 的逆序对数为 $3$。其中第三个数 $2$ 前比它大的数有 $1$ 个,第四个数 $1$ 前比它大的数有 $2$ 个,因此总的逆序对数为 $1+2=3$。

因为合法的数列 $b$ 可能存在多种,第一种合法的 $b$ 序列的数量为 $cnt_1$,第二种合法的 $b$ 序列的数量为 $cnt_2$。那么数列 $a$ 的神秘程度为:$ans = cnt_1 - cnt_2$。

请你帮蒜头君计算出数列 $a$ 的神秘程度。

输入格式

第一行一个正整数 $T$ 表示数据的组数。

对于每一组数据,第一行一个正整数 $n$,表示数列 $a$ 的长度。

第二行 $n$ 个以空格隔开的正整数,第 $i$ 个数为 $a_i$。

输出格式

输出共 $T$ 行,第 $i$ 行输出一个非负整数表示第 $i$ 组数据的答案。这个答案可能会很大,你只需要输出它对 $998244353$ 取模后的结果即可。

注:若神秘程度 $ans < 0$,则需要多次通过 $ans = (ans + 998244353) \% 998244353$ 处理,确保 $0 \leq ans < 998244353$。

数据范围

  • 对于前 $10\%$ 的数据,有 $1\leq n\leq 10$。
  • 对于前 $40\%$ 的数据,有 $1\leq n\leq 200$。
  • 对于另外 $20\%$ 的数据,保证 $a$ 是一个 $1\sim n$ 的排列。
  • 对于 $100\%$ 的数据,有 $1\leq T\leq 10,1\leq a_i\leq n\leq 1000$。
1
3
2 1 3
998244352
1
3
2 1 1
0