#P10301. [2023年重庆八中NOI模拟]良心题

[2023年重庆八中NOI模拟]良心题

良心题(number)

题目描述

某一天,zzhcjz 在进行一个神仙的游戏。

zzh 选定了一个正整数 nn ,以及 nn 个不小于 22 的正整数 v1,...,vnv_1,...,v_n

cjz 随后选定了 nn 个正整数 p1,...,pnp_1,...,p_n,以及一个正整数 kk

然后游戏开始,这个游戏中只包含 nn 个数 x1,...,xnx_1,...,x_n ,以及一个计数器 ctct 。初始时这些数都等于 00

在这个游戏中只存在一种操作,操作的描述如下:

首先,通过 pp 随机生成一个 [1,n][1,n] 间的正整数 tt。生成 11 的概率为 p1i=1npi\frac{p_1}{\sum_{i=1}^np_i} , 生成 22 的概率为 p2i=1npi\frac{p_2}{\sum_{i=1}^np_i} ,...,生成 xx 的概率为 pxi=1npi\frac{p_x}{\sum_{i=1}^np_i}

然后,将 xtx_t 变为 (xt+1)modvt(x_t+1)\bmod v_t

最后,如果此时所有 xix_i 均为 00 ,则将计数器 ctct 加一。当 ct=kct=k 时,游戏停止。

游戏的过程即为循环执行这个操作,直到游戏停止。

现在 zzhcjz 都选好了所有的数,在游戏开始前,他们各自提出了一个问题:

zzh 想知道,在游戏停止时,进行的操作的次数的期望。(结束时的这次操作计入操作次数)。

cjz 想知道,如果定义一次游戏的丰富程度为:

定义一个长度为 nn 的整数序列 s1,...,sns_1,...,s_n 是好的,当且仅当:

在游戏的某次操作后, i{1,2,...,n},xi=si\forall i\in\{1,2,...,n\},x_i=s_i ,即序列 ss 与序列 xx 相等。

游戏的丰富程度为好的整数序列 s1,...,sns_1,...,s_n 的数量。

则游戏的丰富程度的期望。

zzhcjz 很快求出了两个问题的答案。现在他们把问题交给了你。为了让不是神仙的人(比如你)能够回答问题,cjz 选定了一个质数 pp ,满足:

  1. i{1,2,...,n},vip1\forall i\in\{1,2,...,n\},v_i|p-1
  2. 保证答案在模 pp 意义下有定义。
  3. 33 是模 pp 意义下的一个原根。
  4. 对于游戏中任何一个可能出现的 x1,...,nx_{1,...,n},从这个状态开始操作,到计数器下一次增加的操作次数的期望值模 pp 意义下有定义.
  5. 所有的 pip_i 随机生成,pp 在某个范围内满足条件的数中随机生成。可以认为,在这个条件以及上个条件的限制下,有极其大的概率不用考虑计算中出现分母模意义下为 00 的情况。

你只需要求出答案对 pp 取模的结果即可。

输入格式

从文件 number.in 读入。

输入的第一行包含四个正整数 n,p,k,opn,p,k,op ,其中 opop 表示你需要回答的问题。如果 op=1op=1 ,你需要回答 zzh 的问题。如果 op=2op=2 ,你需要回答 cjz 的问题。

接下来的 nn 行,第 ii 行包含两个正整数 vi,piv_i,p_i ,含义见题面。

输出格式

输出到文件 number.out

输出一行一个整数,表示答案对 pp 取模的结果。

样例
样例输入1
2 998244353 1 1
2 1
2 1
样例输出1
4
样例解释1

fa1,a2f_{a_1,a_2} 表示当前两个数为 a1,a2a_1,a_2 时,游戏结束需要的操作次数期望。

那么:

$$f_{0,0}=1+\frac12f_{0,1}+\frac12f_{1,0}\\ f_{0,1}=1+\frac12f_{1,1}\\ f_{1,0}=1+\frac12f_{1,1}\\ f_{1,1}=1+\frac12f_{0,1}+\frac12f_{1,1} $$

可以解得 f0,0=f1,1=4,f0,1=f1,0=3f_{0,0}=f_{1,1}=4,f_{0,1}=f_{1,0}=3

样例输入2
2 998244353 1 2
2 1
2 1
样例输出2
831870297
样例解释2

考虑计算某个状态不出现的概率。

状态 1,11,1 不出现,当且仅当操作为连续两次选中同一个变量,这样的概率为 12\frac12

状态 0,10,1 不出现,当且仅当第一次选第一个变量,随后选择偶数次第二个变量,再选择第一个变量使游戏结束。这样的概率为 1223=13\frac12*\frac23=\frac13

状态 1,01,0 与状态 0,10,1 的答案相同。

因此答案为 1+12+223=1761+\frac12+2*\frac23=\frac{17}6

样例输入3
2 998244353 1 2
2 2
2 3
样例输出3
517661003
样例输入4
2 998244353 100 2
2 2
2 3
样例输出4
313130520
样例输入/输出 5~10

见下发文件

样例 5105\sim 10 依次满足测试点 4,8,10,13,18,244,8,10,13,18,24 的限制。

数据范围与限制

对于所有数据,保证 $\prod_{i=1}^n v_i\leq 2^{19},1<v_i\leq 2^{19},1\leq p_i\leq 10^5,5\times 10^8\leq p\leq 1.05\times 10^9,op\in\{1,2\},k\leq 10^8$,pp 为质数。保证数据满足题面中所有限制。

测试点编号 特殊限制
11 op=1,n=1op=1,n=1
2,32,3 op=1,i=1nvi500op=1,\prod_{i=1}^n v_i\leq 500
4,54,5 op=1,i=1nvi104op=1,\prod_{i=1}^n v_i\leq 10^4
66 op=1op=1
77 op=2,n=1op=2,n=1,满足性质A,B
8,98,9 op=2,i=1nvi200op=2,\prod_{i=1}^n v_i\leq 200,满足性质A,B
10,11,1210,11,12 op=2,i=1nvi600op=2,\prod_{i=1}^n v_i\leq 600,满足性质A,B
13,14,15,1613,14,15,16 op=2,i=1nvi3000op=2,\prod_{i=1}^n v_i\leq 3000,满足性质A,B
1717 op=2,i=1nvi104op=2,\prod_{i=1}^n v_i\leq 10^4,满足性质A,B
1818 op=2,i=1nvi217op=2,\prod_{i=1}^n v_i\leq 2^{17},满足性质A,B
1919 op=2op=2,满足性质A,B
2020 op=2,i=1nvi217op=2,\prod_{i=1}^n v_i\leq 2^{17},满足性质A
2121 op=2op=2,满足性质A
2222 op=2,i=1nvi217op=2,\prod_{i=1}^n v_i\leq 2^{17},满足性质B
2323 op=2op=2,满足性质B
2424 op=2,i=1nvi217op=2,\prod_{i=1}^n v_i\leq 2^{17}
2525 op=2op=2

特殊性质A:i{1,2,...,n},tN,vi=2t\forall i\in\{1,2,...,n\},\exists t\in\N,v_i=2^t

特殊性质B: 220p12^{20}|p-1

友情提示:读题不规范,爆零两行泪。