首页 > 其他 > 详细

整除排列

时间:2021-08-30 03:02:18      阅读:4      评论:0      收藏:0      [点我收藏+]

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 的数即可。

整除排列

原文:https://www.cnblogs.com/wwlwQWQ/p/15201813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!