AT_kupc2018_e 転倒数
题目描述
给定一个长度为 $N$ 的排列 $P = p_1, p_2, \ldots, p_N$。请你求出所有长度为 $N$ 的排列中,字典序小于等于 $P$ 的所有排列的逆序数之和。由于答案可能非常大,请输出其对 $10^9 + 7$ 取模后的结果。
其中,排列 $X = x_1, x_2, \ldots, x_N$ 的逆序数定义为满足 $1 \leq i < j \leq N$ 且 $x_i > x_j$ 的整数对 $(i, j)$ 的个数。
输入格式
输入从标准输入中给出,格式如下:
> $N$ $p_1$ $p_2$ $\ldots$ $p_N$
输出格式
请输出所有长度为 $N$ 的排列中,字典序小于等于排列 $P$ 的所有排列的逆序数之和,对 $10^9 + 7$ 取模后的结果。
说明/提示
### 限制条件
- $1 \leq N \leq 2 \times 10^5$
- $1 \leq p_i \leq N$
- 输入均为整数。
- $p_1, p_2, \ldots, p_N$ 是一个排列。
### 样例解释 1
字典序小于等于排列 $(2, 1, 3)$ 的长度为 $3$ 的排列有 $(1, 2, 3)$、$(1, 3, 2)$、$(2, 1, 3)$ 共 $3$ 种。这些排列的逆序数分别为 $0, 1, 1$,因此答案为 $0 + 1 + 1 = 2$。
由 ChatGPT 4.1 翻译