CF2020E.Expected Power
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个长度为 n 的整数数组 a1,a2,…,an,以及一个数组 p1,p2,…,pn。
定义随机多重集 S(即 S 可以包含相同元素),其构造方式如下:
- 初始时,S 为空集。
- 对于每个 i 从 1 到 n,以概率 104pi 将 ai 插入 S。注意,每个元素是否被插入是独立的。
记 f(S) 为 S 中所有元素的按位异或(bitwise XOR)结果。请计算 E[(f(S))2] 的期望值,并将答案对 109+7 取模输出。
形式化地,设 M=109+7。可以证明答案可以表示为最简分数 qp,其中 p 和 q 是整数且 q≡0(modM)。请输出满足 0≤x<M 且 x⋅q≡p(modM) 的整数 x。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤2×105)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤1023)。
第三行包含 n 个整数 p1,p2,…,pn(1≤pi≤104)。
保证所有测试用例中 n 的总和不超过 2×105。
输出格式
对于每个测试用例,输出 E[(f(S))2] 的期望值,对 109+7 取模。
输入输出样例
输入#1
4 2 1 2 5000 5000 2 1 1 1000 2000 6 343 624 675 451 902 820 6536 5326 7648 2165 9430 5428 1 1 10000
输出#1
500000007 820000006 280120536 1
说明/提示
在第一个测试用例中,a=[1,2],每个元素被插入 S 的概率为 21,因为 p1=p2=5000,104pi=21。因此,S 有 4 种可能:
- S=∅,此时 f(S)=0,(f(S))2=0。
- S={1},此时 f(S)=1,(f(S))2=1。
- S={2},此时 f(S)=2,(f(S))2=4。
- S={1,2},此时 f(S)=1⊕2=3,(f(S))2=9。
因此,答案为 0⋅41+1⋅41+4⋅41+9⋅41=414=27≡500000007(mod109+7)。
在第二个测试用例中,a=[1,1],a1 以概率 0.1 被插入 S,a2 以概率 0.2 被插入 S。S 有 3 种可能:
- S=∅,此时 f(S)=0,(f(S))2=0,概率为 (1−0.1)⋅(1−0.2)=0.72。
- S={1},此时 f(S)=1,(f(S))2=1,概率为 (1−0.1)⋅0.2+0.1⋅(1−0.2)=0.26。
- S={1,1},此时 f(S)=0,(f(S))2=0,概率为 0.1⋅0.2=0.02。
因此,答案为 0⋅0.72+1⋅0.26+0⋅0.02=0.26=10026≡820000006(mod109+7)。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?