题目描述
给定一个 (1, 2, …, N) 的排列 P=(P1, P2, …, PN)。
请输出满足以下两个条件的长度为 N 的整数列 A=(A1, A2, …, AN) 的个数,对 998244353 取模。
- 对于所有 i=1,2,…,N,都有 1≤Ai≤M。
- 整数列 A 的字典序严格小于整数列 (AP1, AP2, …, APN)。
什么是字典序严格小于?对于整数列 X=(X1, X2, …, XN) 和 Y=(Y1, Y2, …, YN),如果存在整数 1≤i≤N,使得以下两个条件都成立,则称 X 的字典序严格小于 Y:
- 对于所有 1≤j≤i−1,都有 Xj=Yj。
- Xi<Yi。
输入格式
输入以如下格式从标准输入读入。
N M P1 P2 … PN
输出格式
输出满足题目中两个条件的整数列 A 的个数,对 998244353 取模。
样例 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
说明/提示
数据范围
- 1≤N≤2×105
- 1≤M≤109
- 1≤Pi≤N
- i=j⟹Pi=Pj
- 输入均为整数
样例解释 1
满足题目中两个条件的整数列 A 有 $(1,\ 1,\ 1,\ 2),\ (1,\ 1,\ 2,\ 2),\ (1,\ 2,\ 1,\ 2),\ (1,\ 2,\ 2,\ 2),\ (2,\ 1,\ 1,\ 2),\ (2,\ 1,\ 2,\ 2)$ 共 6 个。例如,当 A=(1, 1, 1, 2) 时,$(A\_{P\_1},\ A\_{P\_2},\ A\_{P\_3},\ A\_{P\_4}) = (2,\ 1,\ 1,\ 1)$,它的字典序大于 A。
由 ChatGPT 4.1 翻译