题号:NC249993
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
一天,猫猫路过了宝石店。
店中有

块宝石,美丽度为整数

。
神奇的是,如果把

个美丽度之和为

的宝石合并,可以合成一个美丽度为

的新宝石。
猫猫想知道,如果她随机选一些宝石 (共

种选法),每个宝石以

的概率被选中,然后把所有选中的宝石合并,获得的新宝石美丽度的期望值是多少。如果没有任何宝石被选中,我们认为新宝石的美丽度为

。
猫猫非常贪心,她想对于每个

,都询问一下假设只有前

块宝石,随机选一些宝石合并,新宝石美丽度的期望是多少。
离散型随机变量

的期望定义如下:设

所有可能的取值是

,概率对应为

(满足

),则期望
%20%3D%20%5Csum_%7Bi%20%3D%201%7D%5Em%20p_i%20v_i)
。
记

。可以证明答案可以表示成

其中
%20%3D%201%2Cq%5Cbmod%20M%5Cnot%3D0)
,故你只要输出

即可。此处

表示

在模

意义下的逆元,即

,例如本题数字

在模

意义下的逆元是

。
输入描述:
输入共两行。
第一行一个正整数

,表示宝石的个数。
第二行

个正整数

,表示每个宝石的美丽度。

。
输出描述:
一行
个数,第
个数表示
的答案。
示例2
输出
复制
499123188 499123696 2041 249565737 18666