题目背景
译自 Izborne Pripreme 2020 (Croatian IOI/CEOI Team Selection) D2T3。1s,0.5G。
题目描述
给定 K 个 1∼N 的排列 π1,π2,⋯,πK。
求出排列群 G(S,∘) 中的排列的逆序对期望值。其中二元运算 ∘ 为置换,∀1≤i≤K,都有 πi∈S。
具体地说,我们定义 (π∘τ)(i)=π(τ(i))。
群 G(S,∘) 是满足如下性质的代数结构:
- 封闭性:∀a,b∈S,都有 a∘b∈S;
- 结合律:∀a,b,c∈S,都有 (a∘b)∘c=a∘(b∘c);
- 幺元:存在 e∈S,对于 ∀a∈S,都有 a∘e=e∘a=a;
- 逆元:∀a∈S,存在 b∈S,使得 a∘b=b∘a=e。
定义 L(π) 为 π 的逆序对数,即 L(π)=1≤i<j≤n∑[π(i)>π(j)],求出 ∣S∣1π∈S∑L(π)。
答案对 (109+7) 取模。
输入格式
第一行,两个正整数 K,N。
接下来 K 行,第 i 行 N 个正整数描述 πi。
输出格式
输出一行一个整数,即答案对 (109+7) 取模后的结果。
提示
样例解释
- 样例 1 解释:S={[2,3,1],[3,1,2],[1,2,3]}。逆序对期望值为 31+2+0=34。
- 样例 2 解释:可以证明 ∣S∣=5!,即 S 中包含了 1∼5 的所有排列。
- 样例 3 解释:此时 ∣S∣=20,答案真实值为 10149。
数据范围
对于 100% 的数据,保证:
- 1≤K≤10;
- 1≤N≤2500;
- πi 是 1∼N 的排列。
子任务编号 |
N≤ |
K≤ |
特殊性质 |
得分 |
1 |
9 |
10 |
无 |
7 |
2 |
2500 |
1 |
有 |
8 |
3 |
2500 |
无 |
25 |
4 |
10 |
60 |
特殊性质:∀1≤i≤K,存在 1∼N 的排列 a,使得 πi(a1)=a2,πi(a2)=a3,⋯,πi(an)=a1。