#ATarc151b. [ARC151B] A < AP

[ARC151B] A < AP

题目描述

给定一个 (1, 2, , N)(1,\ 2,\ \ldots,\ N) 的排列 P=(P1, P2, , PN)P = (P_1,\ P_2,\ \ldots,\ P_N)

请输出满足以下两个条件的长度为 NN 的整数列 A=(A1, A2, , AN)A = (A_1,\ A_2,\ \ldots,\ A_N) 的个数,对 998244353998244353 取模。

  • 对于所有 i=1,2,,Ni = 1, 2, \ldots, N,都有 1AiM1 \leq A_i \leq M
  • 整数列 AA 的字典序严格小于整数列 (AP1, AP2, , APN)(A_{P_1},\ A_{P_2},\ \ldots,\ A_{P_N})

什么是字典序严格小于?对于整数列 X=(X1, X2, , XN)X = (X_1,\ X_2,\ \ldots,\ X_N)Y=(Y1, Y2, , YN)Y = (Y_1,\ Y_2,\ \ldots,\ Y_N),如果存在整数 1iN1 \leq i \leq N,使得以下两个条件都成立,则称 XX 的字典序严格小于 YY

  • 对于所有 1ji11 \leq j \leq i-1,都有 Xj=YjX_j = Y_j
  • Xi<YiX_i < Y_i

输入格式

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

NN MM P1P_1 P2P_2 \ldots PNP_N

输出格式

输出满足题目中两个条件的整数列 AA 的个数,对 998244353998244353 取模。

样例 1

输入

4 2
4 1 3 2

输出

6

样例 2

输入

1 1
1

输出

0

样例 3

输入

20 100000
11 15 3 20 17 6 1 9 5 19 10 16 7 8 12 2 18 14 4 13

输出

55365742

说明/提示

数据范围

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1M1091 \leq M \leq 10^9
  • 1PiN1 \leq P_i \leq N
  • ij    PiPji \neq j \implies P_i \neq P_j
  • 输入均为整数

样例解释 1

满足题目中两个条件的整数列 AA 有 $(1,\ 1,\ 1,\ 2),\ (1,\ 1,\ 2,\ 2),\ (1,\ 2,\ 1,\ 2),\ (1,\ 2,\ 2,\ 2),\ (2,\ 1,\ 1,\ 2),\ (2,\ 1,\ 2,\ 2)$ 共 66 个。例如,当 A=(1, 1, 1, 2)A = (1,\ 1,\ 1,\ 2) 时,$(A\_{P\_1},\ A\_{P\_2},\ A\_{P\_3},\ A\_{P\_4}) = (2,\ 1,\ 1,\ 1)$,它的字典序大于 AA

由 ChatGPT 4.1 翻译