P5270: 排列计数

传统题
1.000s 时间限制
256MB 内存限制
3 提交
3 解决

【题目描述】
题目描述
给定a1,a2,…,an,它是一个1 n 排列,也就是说,a1 a这些数字互不相同且都是在 1 n之间的整数。若将所有 1 n排列按照字典序列出,请求出 a1,a2,…,an在其中的名次。
 n=3时,所有排列为(按字典序罗列):
1, 2, 3
1, 3, 2
2, 1, 3
2, 3, 1
3, 1, 2
3, 2, 1
其中 3, 1, 2 的名次为 5
序列的字典序是指定义两个序列大小的一种方法。设有两个序列x1,x2,...xn y1,y2,…,yn,若x1y1能够区分大小,则以它们的大小定义 x序列与 y序列的大小;否则,以x2y2定义两序列的大小,若x2y2仍一样大,则以 x3y3区分,以此类推,直到 xn yn
输入格式
第一行:单个正整数表示 n
第二行:个正整数表示 a1,a2,…,an
输出格式
单个整数:表示输入排列在所有排列中的名次,由于数字可能很大,取答案模 109+7的余数。
数据范围
对于 40% 的分数,1≤n≤10
对于 70% 的分数,1≤n≤10000
对于 100% 的分数,1≤n≤200000
样例数据
输入:
3
3 1 2
输出:
5
输入:
4
4 3 2 1
输出:
24
说明:
所有排列中的最后一个排列
 
【样例输入】复制
【样例输出】 复制

咻咻~

提交答案 状态