U129781 「EZEC-4.5」逆序数
题目描述
我们说 $(i,j)$ 是排列 $p$ 的一个逆序对当且仅当 $i p_j $。
给定长度为 $n$ 的序列 $a$ ($a_i$ 为 $0$ 或互不相等的正整数),定义 $1$ 到 $n$ 的一个合法的排列 $p$ 需满足对于任意整数 $i\in [1,n]$,皆满足 $a_i(p_i-a_i)=0$。
**求 $1$ 到 $n$ 的所有合法的排列的逆序对数目之和对 $1000000007(10^9+7)$ 取模的值。**
输入格式
第一行一个整数,$n$。
第二行 $n$ 个整数,$a_i$。
输出格式
一行一个整数表示答案。
说明/提示
[大样例](https://www.luogu.com.cn/paste/2xhy0onw)
### 【样例解释】:
样例1:合法的排列有两个,
- $\{1,2,4,3\}$,逆序对有 $(3,4)$
- $\{4,2,1,3\}$,逆序对有 $(1,2),(1,3),(1,4),(2,3)$
- 因此答案为 $1+4=5$。
### 【数据范围】:
- 对于 $20\%$ 的数据,$1\le n \le 8 $。
- 对于另外 $20\%$ 的数据,$a_i\ne 0$。
- 对于另外 $20\%$ 的数据,$a_i = 0$。
- 对于另外 $20\%$ 的数据,$1\le n \le 10^3 $。
- 对于 $100\%$ 的数据,$1\le n \le 10^5, a_i $ 为 $0$ 或互不相等的正整数