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

请忽略bilibili的水印
题目描述
Kirito 和 Eugeo 每天砍树觉得很无聊,于是开始比谁砍出好声音的次数多。渐渐地,他们发现这样也没有意思了,于是在这个基础上改了一点:
每个人去砍树前,会随机得到一个长度为 n 的数列 s1,s2,…,sn 。最初每个人的得分都是 1,当第 i 次砍出了一个好声音时,得分就变成了原来的得分与 si 的最小公倍数,也就是常说的 lcm。
现在 Kirito 已经得到了一个长度为 n 的数列 s1,s2,…,sn 。他想知道,如果每一次砍出好声音的概率是 50% 时他的期望得分。
由于 Kirito 不想看到小数,所以请你告诉 Kirito 答案乘 2n 对 p 取模的值。
输入格式
共 2 行。
第 1 行包含 2 个正整数 n 和 p ,代表数列的长度和给定的模数。保证模数为质数
第 2 行包含 n 个正整数,第 i 个数代表 si。
输出格式
共 1 行,包含 1 个正整数,代表得分的期望值乘 2n 对 p 取模的结果。
提示
样例解释 1
一共有 8 种情况:
-
没有出现好声音,得分为 1,概率为 81。
-
只有第一次出现了好声音,得分为 1,概率为 81。
-
只有第二次出现了好声音,得分为 2,概率为 81。
-
只有第三次出现了好声音,得分为 3,概率为 81。
-
只有第三次没有出现好声音,得分为 lcm(1,2)=2,概率为 81。
-
只有第二次没有出现好声音,得分为 lcm(1,3)=3,概率为 81。
-
只有第一次没有出现好声音,得分为 lcm(2,3)=6,概率为 81。
-
每一次都砍出了好声音,得分为 lcm(1,2,3)=6,概率为 81。
所以期望值为 81+81+82+83+82+83+86+86=3
乘上 23 得到答案为 24。
子任务
本题采用捆绑测试。
对于 100% 的数据,1≤n≤3×105,107≤p≤1.1×109且p为质数,1≤si≤300。
本题共 7 个子任务,各子任务的分值和限制如下:
子任务 1(3 分):n=1。
子任务 2(7 分):n=18。
子任务 3(10 分):n=100,s 中不同的正整数不超过 18 个。
子任务 4(20 分):n=100,不存在 1≤i=j≤n,使得 si=sj。且保证数据随机。
子任务 5(20 分):1≤s1,s2,…,sn≤100。
子任务 6(20 分):1≤n≤104。
子任务 7(20 分):无特殊限制。
谨以此题庆祝刀剑10周年。好像晚了几个月...
题目来源
MtOI2019 Extra Round T4
出题人:CYJian
验题人:suwAKow