Description
给定一个排列,问存不存在这样的子集,使得异或和是零,且按顺序拼接起来成为一个大整数后是一个质数 (p) 的倍数。输出方案。
Solution
将几个数拼接起来,完全没有性质,可以直接将它看成是一个模 (p) 意义下的均匀分布,也就说完全可以将其看做是等概率随机的。那么选的数的大小都无所谓了,因为都是等价的,只需要保证异或和是 (0)。我们选择前 (25) 个数。这二十五个数不存在解的概率就是
[(1-frac{1}{P})^{2^{25}/32} < 10^{-9}
]
随机选数,最后不是 (p) 的倍数的概率是 (1-frac{1}{p}),然后有 (2^{25}) 种子集。如果将异或也看做是随机数,那么异或起来是 (0) 的情况就是总情况的 (frac{1}{32}) 。
错误概率可以接受,所以我们直接暴搜小于等于 25 的数即可。