luogu#P6633. [ZJOI2020] 抽卡

[ZJOI2020] 抽卡

题目描述

Bob 喜欢抽卡。

Bob 最近入坑了一款叫 “主公连结” 的抽卡游戏。游戏中共有 nn 个不同的角色,编号为 1n1 \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},你需要输出一个整数 c 满足 c×ba(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\% 的数据,m10m \le 10
对于另外 10%10\% 的数据,m500m \le 500k=m1k = m−1
对于另外 10%10\% 的数据,m500m \le 500 且保证有且仅有一组理论最强阵容。
对于另外 10%10\% 的数据,m500m \le 500 且保证任意两组可抽出的理论最强阵容不交。
对于前 50%50\% 的数据,m500m \le 500
对于前 70%70\% 的数据,m5000m \le 5000
对于另外 10%10\% 的数据,k=5k = 5
对于另外 10%10\% 的数据,k=2000k = 2000
对于 100%100\% 的数据,1m200000,1ai2m,2km1 \le m \le 200000,1 \le a_i \le 2m,2 \le k \le m,保证卡池中至少存在一组 可抽出的理论最强阵容(即编号连续的 kk 张卡)。