[机房测试]整除排列
Description
给定一个排列,问存不存在这样的子序列,使得其元素异或和是零,且按顺序拼接起来成为一个大整数后是一个给定质数 \(p\) 的倍数。求出使得最后拼接出的大整数最小的方案。
数据范围: \(n,p\leq 10^5\)
Solution
将几个数拼接起来,可以直接将它看成是一个模 \(p\) 意义下的均匀分布。只需要保证异或和是 \(0\)。我们只考虑值小于等于 \(26\) 的数。这二十六个数不存在解的概率是
\[(1-\frac{1}{P})^{2^{26}/32} < 10^{-8}
\]
错误概率可以接受,所以我们直接暴搜序列中小于等于 26 的数即可。