#L3315. 「ZJOI2020」抽卡

「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, \dots, a_m,表示卡池中有哪些角色。

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

输出格式

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

样例 1

输入

3 2
1 2 3

输出

499122180

解释

如果第一轮抽到的是 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 $$

样例 2

输入

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

输出

839792873

数据范围与提示

  • 对于前 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\% 的数据,1m2000001 \le m \le 2000001ai2m1 \le a_i \le 2m2km2 \le k \le m,保证卡池中至少存在一组可抽出的理论最强阵容(即编号连续的 kk 张卡)