【清华集训2014】玛里苟斯 - 题目 - Universal Online Judge
k=1,2,3,4,5各占20pts是提示
应当分开考虑
k=1
拆位,如果第i位有1,则有1/2的概率xor出来,得到(1<<i)的贡献
证明考虑若干个有1的数,找到偶数个1的概率
k=2
还是拆位
然后考虑二进制:(a1+a2+a3+...+ak)*(a1+a2+a3+..+ak)
根据完全平方展开
存在ai的平方和,还有所有两项的乘积再*2
分开考虑贡献的期望
a^2:1/2
2ab:1/4
a,b都是有1的位
注意,如果a,b出现的每一次都属于同一个数,那么概率是1/2
暴力枚举即可60^2
k>=3
不能再展开了,项数多而复杂。
另辟蹊径
发现,如果一个数可以被其他的数xor表示,那么这个数的存在与否不影响答案
有没有这个数的两种情况的所有组合都是相同的。
所以去掉这些数
线性基
只剩60个数
但是有答案<2^63
所以每个数最大2^20左右
否则有一个2^30,就至少贡献2^(30k)/2的值,直接爆
所以只剩下20个数,k越大越少
dfs爆搜即可
但是由于/2的存在,所以可能会爆long long
unsigned long long即可。