#P6633. [ZJOI2020] 抽卡

[ZJOI2020] 抽卡

题目描述

Bob 喜欢抽卡。

Bob 最近入坑了一款叫“主公连结”的抽卡游戏。游戏中共有 nn 个不同的角色,编号为 1∼n1 \sim n。当 Bob 获得其中的编号连续的 kk 张卡时,就可以组出理论最强阵容。

当期卡池中共有 mm 张不同的卡,每次抽卡,Bob 都可以等概率随机获得一张卡池中的卡。如果 Bob 抽到了一张他已经拥有的卡,那么什么事都不会发生,等于 Bob 浪费了这次抽卡机会。Bob 是个谨慎的人,他想知道,如果他不停地抽卡直到抽到编号连续的 kk 张卡时停止抽卡,期望需要抽多少轮。

输入格式

第一行输入两个整数 m,km,k。

第二行输入 mm 个两两不同的整数 a1,a2,⋅⋅⋅,ama_1,a_2,··· ,a_m,表示卡池中有哪些角色。

题面中的 nn 即为最大的 aia_i 的值。

输出格式

输出一行一个整数,代表期望轮数对 p=998244353p = 998244353 取模后的结果。即,如果期望轮数的最简分数表示为 ab\frac{a}{b},你需要输出一个整数 cc 满足 c×b≡a(modp)c \times b \equiv a \pmod{p}。

3 2
1 2 3
499122180
10 2
1 2 3 4 5 7 8 9 11 12
839792873

提示

样例解释 1

如果第一轮抽到的是 22 号卡,那么期望需要抽 1+321 + \frac{3}{2} 轮;如果第一轮抽到的是 11 号卡或 33 号卡,那么期望需要抽 1+31 + 3 轮。故答案为 $\frac{1}{3}(1 + \frac{3}{2}) + \frac{2}{3}(1 + 3) = 3.5$。

数据范围与约定

对于前 10%10\% 的数据,m≤10m \le 10。
对于另外 10%10\% 的数据,m≤500m \le 500 且 k=m−1k = m−1。
对于另外 10%10\% 的数据,m≤500m \le 500 且保证有且仅有一组理论最强阵容。
对于另外 10%10\% 的数据,m≤500m \le 500 且保证任意两组可抽出的理论最强阵容不交。
对于前 50%50\% 的数据,m≤500m \le 500。
对于前 70%70\% 的数据,m≤5000m \le 5000。
对于另外 10%10\% 的数据,k=5k = 5。
对于另外 10%10\% 的数据,k=2000k = 2000。
对于 100%100\% 的数据,$1 \le m \le 2\times 10^5,1 \le a_i \le 2m,2 \le k \le m$,保证卡池中至少存在一组可抽出的理论最强阵容(即编号连续的 kk 张卡)。