#P5616. [MtOI2019] 恶魔之树

    ID: 4539 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>动态规划dp数论数学2019洛谷原创O2优化期望洛谷月赛

[MtOI2019] 恶魔之树

题目背景

在 Kirito 和 Eugeo 还没有与 Alice 前往北之洞窟的时候,Eugeo 每天只能用龙骨斧砍恶魔之树——基家斯西达……

请忽略bilibili的水印

题目描述

Kirito 和 Eugeo 每天砍树觉得很无聊,于是开始比谁砍出好声音的次数多。渐渐地,他们发现这样也没有意思了,于是在这个基础上改了一点:

每个人去砍树前,会随机得到一个长度为 nn 的数列 s1,s2,,sns_1, s_2, \dots, s_n 。最初每个人的得分都是 11,当第 ii 次砍出了一个好声音时,得分就变成了原来的得分与 sis_i 的最小公倍数,也就是常说的 lcm{\rm lcm}

现在 Kirito 已经得到了一个长度为 nn 的数列 s1,s2,,sns_1, s_2, \ldots, s_n 。他想知道,如果每一次砍出好声音的概率是 50%50\% 时他的期望得分。

由于 Kirito 不想看到小数,所以请你告诉 Kirito 答案乘 2n2^npp 取模的值。

输入格式

22 行。

11 行包含 22 个正整数 nnpp ,代表数列的长度和给定的模数。保证模数为质数

22 行包含 nn 个正整数,第 ii 个数代表 sis_i

输出格式

11 行,包含 11 个正整数,代表得分的期望值乘 2n2^npp 取模的结果。

3 998244353
1 2 3
24
10 998244353
1 2 3 4 5 6 7 8 9 10
516032

提示

样例解释 1

一共有 88 种情况:

  • 没有出现好声音,得分为 11,概率为 18\frac{1}{8}

  • 只有第一次出现了好声音,得分为 11,概率为 18\frac{1}{8}

  • 只有第二次出现了好声音,得分为 22,概率为 18\frac{1}{8}

  • 只有第三次出现了好声音,得分为 33,概率为 18\frac{1}{8}

  • 只有第三次没有出现好声音,得分为 lcm(1,2)=2\operatorname{lcm}(1, 2)=2,概率为 18\frac{1}{8}

  • 只有第二次没有出现好声音,得分为 lcm(1,3)=3\operatorname{lcm}(1, 3)=3,概率为 18\frac{1}{8}

  • 只有第一次没有出现好声音,得分为 lcm(2,3)=6\operatorname{lcm}(2, 3)=6,概率为 18\frac{1}{8}

  • 每一次都砍出了好声音,得分为 lcm(1,2,3)=6\operatorname{lcm}(1, 2, 3)=6,概率为 18\frac{1}{8}

所以期望值为 $\frac{1}{8}+\frac{1}{8}+\frac{2}{8}+\frac{3}{8}+\frac{2}{8}+\frac{3}{8}+\frac{6}{8}+\frac{6}{8}=3$

乘上 232^3 得到答案为 2424

子任务

本题采用捆绑测试。

对于 100%100\% 的数据,1n3×1051\leq n\leq 3\times 10^5107p1.1×10910^7 \leq p \leq 1.1 \times 10^9pp为质数,1si3001\leq s_i\leq 300

本题共 77 个子任务,各子任务的分值和限制如下:

子任务 1133 分):n=1n=1

子任务 2277 分):n=18n=18

子任务 331010 分):n=100n=100ss 中不同的正整数不超过 1818 个。

子任务 442020 分):n=100n=100,不存在 1ijn1\leq i \neq j \leq n,使得 si=sjs_i=s_j。且保证数据随机。

子任务 552020 分):1s1,s2,,sn1001\leq s_1, s_2, \ldots, s_n \leq 100

子任务 662020 分):1n1041\leq n \leq 10^4

子任务 772020 分):无特殊限制。


谨以此题庆祝刀剑10周年。好像晚了几个月...

题目来源

MtOI2019 Extra Round T4

出题人:CYJian

验题人:suwAKow