A85912.「NOI2019」斗主地

NOI/NOI+/CTSC

通过率:0%

时间限制:4.00s

内存限制:512MB

题目描述

小 S 在和小 F 玩一个叫「斗地主」的游戏。

可怜的小 S 发现自己打牌并打不过小 F,所以他想要在洗牌环节动动手脚。

一副牌一共有 nn 张牌,从上到下依次标号为 1n1 \sim n。标号为 ii 的牌分数f(i)f (i)。在本题,f(i)f (i) 有且仅有两种可能:f(i)=if (i) = if(i)=i2f (i) = i^2

洗牌的方式和我们日常生活中的比较类似,以下我们用形式化的语言来定义:

洗牌环节一共分 mm 轮,这 mm 轮洗牌依次进行。第 ii 轮洗牌时:

  1. 小 S 会拿出从最上面往下数的前 AiA_i 张牌。这样这副牌就被分成了两堆:第一堆是最上面的 AiA_i 张牌,第二堆是剩下的 nAin − A_i 张牌,且这两堆牌内相对顺序不变。特别地,当 Ai=nA_i = nAi=0A_i = 0 时,有一堆牌是空的。
  2. 接下来对两堆牌进行合并,从而产生新的第三堆牌。当第一堆牌还剩下 XX 张,第二堆牌还剩下 YY 张的时候,以 XX+Y\frac{X}{X+Y} 的概率取出第一堆牌的最下面的牌,并将它放入新的第三堆牌的最上面,YX+Y\frac{Y}{X+Y} 的概率取出第二堆牌的最下面的牌,并将它放入新的第三堆牌的最上面。
  3. 重复操作 2,一直取到两堆牌都为空为止。这样我们就完成了一轮洗牌。

因为洗牌过程是随机的,所以小 S 发现自己没法知道某个位置上具体是哪张牌。但小 S 想问你在经历了这 mm 轮洗牌后,某个位置上的牌的期望分数是多少。小 S 一共会问你 QQ 个这样的问题。

输入格式

从文件 landlords.in 中读入数据。

输入的第一行包含三个正整数 n,m,typen, m, \text{type},分别表示牌的数量,洗牌的轮数与 f(i)f (i) 的类型。当 type=1\text{type} = 1 时,f(i)=if (i) = i。当 type=2\text{type} = 2 时,f(i)=i2f (i) = i^2

接下来一行,一共 mm 个整数,表示 A1AmA_1 \sim A_m

接下来一行一个正整数 QQ,表示小 S 的询问个数。

接下来 QQ 行,每行一个正整数 cic_i,表示小 S 想要知道从上往下第 cic_i 个位置上的牌的期望分数。保证 1cin1 \le c_i \le n

输出格式

输出到文件 landlords.out 中。

输出一共 QQ 行,每行一个整数,表示答案在模 998244353998244353 意义下的取值。

即设答案化为最简分式后的形式为 ab\frac{a}{b},其中 aabb 互质。输出整数 xx 使得 bxa (mod 998244353)bx \equiv a\ (\text{mod}\ 998244353)0x<9982443530 \le x < 998244353。可以证明这样的整数 xx 是唯一的。

输入输出样例

  • 输入#1

    4 1 1
    3
    1
    1

    输出#1

    249561090

说明/提示

对于所有的测试点:3n107,1m,Q5×105,0Ain,type{1,2}3 \le n \le 10^7 , 1 \le m, Q \le 5 \times 10^5 , 0 \le A_i \le n , \text{type} \in \{1, 2\}

每个测试点的具体限制见下表:

测试点编号 nn mm type=\text{type}= 其他性质
11 10\le 10 1\le 1 11
22 80\le 80 80\le 80 11
33 80\le 80 80\le 80 22
44 100\le 100 5×1055\times 10^5 22 所有 AiA_i 均相同
55 10710^7 5×1055\times 10^5 11
66 10710^7 5×1055\times 10^5 11
77 10710^7 5×1055\times 10^5 11
88 10710^7 5×1055\times 10^5 22
99 10710^7 5×1055\times 10^5 22
1010 10710^7 5×1055\times 10^5 22

请注意我们并没有保证 QnQ \le n

这里我们给出离散型随机变量 XX 的期望 E[x]\mathbb{E}[x] 的定义:

设离散随机变量 XX 的可能值是 X1,X2,,XkX_1, X_2, \ldots , X_kPr[X1],Pr[X2],,Pr[Xk]\text{Pr}[X_1], \text{Pr}[X_2], \ldots , \text{Pr}[X_k]XX 取对应值的概率。则 XX 的期望为

E[x]=i=1kXiPr[Xi]\mathbb{E}[x]=\sum_{i=1}^k X_i\text{Pr}[X_i]

首页