AT_jsc2019_qual_b.Kleene Inversion

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

有一个长度为 NN 的整数序列 A=A0,A1,…,AN−1A = A_0, A_1, \ldots, A_{N-1}。

将 AA 重复 KK 次,得到长度为 K×NK \times N 的整数序列 BB。例如,当 A=1,3,2A = 1, 3, 2,K=2K = 2 时,B=1,3,2,1,3,2B = 1, 3, 2, 1, 3, 2。

请你求出 BB 的逆序对数,并输出其对 109+710^9 + 7 取模的结果。

这里,BB 的逆序对数定义为满足 0≤i<j≤K×N−10 \leq i < j \leq K \times N - 1 且 Bi>BjB_i > B_j 的整数对 (i,j)(i, j) 的个数。

输入格式

输入以如下格式从标准输入读入。

NN KK A0A_0 A1A_1 …\ldots AN−1A_{N-1}

输出格式

输出 BB 的逆序对数对 109+710^9 + 7 取模的结果。

输入输出样例

  • 输入#1

    2 2
    2 1

    输出#1

    3
  • 输入#2

    3 5
    1 1 1

    输出#2

    0
  • 输入#3

    10 998244353
    10 9 8 7 5 6 3 4 2 1

    输出#3

    185297239

说明/提示

限制条件

  • 所有输入均为整数。
  • 1≤N≤20001 \leq N \leq 2000
  • 1≤K≤1091 \leq K \leq 10^9
  • 1≤Ai≤20001 \leq A_i \leq 2000

样例解释 1

在此样例中,B=2,1,2,1B = 2, 1, 2, 1。

  • B0>B1B_0 > B_1
  • B0>B3B_0 > B_3
  • B2>B3B_2 > B_3
    因此,BB 的逆序对数为 33。

样例解释 2

AA 中可以包含多个相同的数。

样例解释 3

请注意输出时要对 109+710^9 + 7 取模。

由 ChatGPT 4.1 翻译

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

首页