AT_abc380_g.[ABC380G] Another Shuffle Window

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

问题链接

给定一个排列 P=(1,2,…,N)P = (1, 2, \dots, N) 和一个整数 KK。

请计算经过以下操作后,排列 PP 的逆序对数的期望值模 998244353998244353 的结果:

  • 首先,从 11 到 N−K+1N-K+1 的整数中随机均匀地选择一个整数 ii;
  • 然后,将子数组 Pi,Pi+1,…,Pi+K−1P_i, P_{i+1}, \dots, P_{i+K-1} 进行随机均匀打乱。

逆序对是什么?

对于一个数组 (A1,A2,…,AN)(A_1, A_2, \dots, A_N),逆序对是满足 1≤i<j≤N1 \leq i < j \leq N 且 Ai>AjA_i > A_j 的整数对 (i,j)(i, j) 的个数。

期望值模 998244353998244353 是什么?

在本问题的约束条件下,期望值可以表示为一个分数 PQ\frac{P}{Q},且 Q≢0(mod998244353)Q \not \equiv 0 \pmod{998244353}。
因此可以找到一个唯一的整数 RR 满足:

R×Q≡P(mod998244353),0≤R<998244353R \times Q \equiv P \pmod{998244353}, \quad 0 \leq R < 998244353

你需要输出这个整数 RR。

输入格式

从标准输入流读入,格式如下:

N K P1 P2 … PNN\ K\ P_1\ P_2\ \dots\ P_N

输出格式

输出在标准输出流,在一行中输出答案。

输入输出样例

  • 输入#1

    4 2
    1 4 2 3

    输出#1

    166374061
  • 输入#2

    1 1
    1

    输出#2

    0
  • 输入#3

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

    输出#3

    499122200

说明/提示

约束条件

  • 所有输入均为整数;
  • 1≤K≤N≤2×1051 \leq K \leq N \leq 2 \times 10^5;
  • PP 是 (1,2,…,N)(1, 2, \dots, N) 的一个排列。

样例解释 1

通过操作,排列 PP 会变为以下形式:

  • (1,4,2,3)(1, 4, 2, 3) —— 概率 12\frac{1}{2};
  • (4,1,2,3)(4, 1, 2, 3) —— 概率 16\frac{1}{6};
  • (1,2,4,3)(1, 2, 4, 3) —— 概率 16\frac{1}{6};
  • (1,4,3,2)(1, 4, 3, 2) —— 概率 16\frac{1}{6}。

对应的逆序对数期望值为:

2×12+3×16+1×16+3×16=136\displaystyle 2 \times \frac{1}{2} + 3 \times \frac{1}{6} + 1 \times \frac{1}{6} + 3 \times \frac{1}{6} = \frac{13}{6}

将 136\frac{13}{6} 转换为模 998244353998244353 的结果为 166374061166374061,因此输出 166374061166374061。

Translated By Mr_Az\mathtt{Mr\_Az}。

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

首页