AT_jsc2019_qual_b Kleene Inversion

题目描述

有一个长度为 $N$ 的整数序列 $A = A_0, A_1, \ldots, A_{N-1}$。 将 $A$ 重复 $K$ 次,得到长度为 $K \times N$ 的整数序列 $B$。例如,当 $A = 1, 3, 2$,$K = 2$ 时,$B = 1, 3, 2, 1, 3, 2$。 请你求出 $B$ 的逆序对数,并输出其对 $10^9 + 7$ 取模的结果。 这里,$B$ 的逆序对数定义为满足 $0 \leq i < j \leq K \times N - 1$ 且 $B_i > B_j$ 的整数对 $(i, j)$ 的个数。

输入格式

输入以如下格式从标准输入读入。 > $N$ $K$ $A_0$ $A_1$ $\ldots$ $A_{N-1}$

输出格式

输出 $B$ 的逆序对数对 $10^9 + 7$ 取模的结果。

说明/提示

### 限制条件 - 所有输入均为整数。 - $1 \leq N \leq 2000$ - $1 \leq K \leq 10^9$ - $1 \leq A_i \leq 2000$ ### 样例解释 1 在此样例中,$B = 2, 1, 2, 1$。 - $B_0 > B_1$ - $B_0 > B_3$ - $B_2 > B_3$ 因此,$B$ 的逆序对数为 $3$。 ### 样例解释 2 $A$ 中可以包含多个相同的数。 ### 样例解释 3 请注意输出时要对 $10^9 + 7$ 取模。 由 ChatGPT 4.1 翻译