AT_kupc2018_e.転倒数

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个长度为 NN 的排列 P=p1,p2,…,pNP = p_1, p_2, \ldots, p_N。请你求出所有长度为 NN 的排列中,字典序小于等于 PP 的所有排列的逆序数之和。由于答案可能非常大,请输出其对 109+710^9 + 7 取模后的结果。

其中,排列 X=x1,x2,…,xNX = x_1, x_2, \ldots, x_N 的逆序数定义为满足 1≤i<j≤N1 \leq i < j \leq N 且 xi>xjx_i > x_j 的整数对 (i,j)(i, j) 的个数。

输入格式

输入从标准输入中给出,格式如下:

NN p1p_1 p2p_2 …\ldots pNp_N

输出格式

请输出所有长度为 NN 的排列中,字典序小于等于排列 PP 的所有排列的逆序数之和,对 109+710^9 + 7 取模后的结果。

输入输出样例

  • 输入#1

    3
    2 1 3

    输出#1

    2
  • 输入#2

    4
    1 2 3 4

    输出#2

    0
  • 输入#3

    8
    5 6 2 7 1 3 8 4

    输出#3

    281881

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • 1≤pi≤N1 \leq p_i \leq N
  • 输入均为整数。
  • p1,p2,…,pNp_1, p_2, \ldots, p_N 是一个排列。

样例解释 1

字典序小于等于排列 (2,1,3)(2, 1, 3) 的长度为 33 的排列有 (1,2,3)(1, 2, 3)、(1,3,2)(1, 3, 2)、(2,1,3)(2, 1, 3) 共 33 种。这些排列的逆序数分别为 0,1,10, 1, 1,因此答案为 0+1+1=20 + 1 + 1 = 2。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页