首页 > 其他 > 详细

解题:POI 2011 Strongbox

时间:2018-10-09 18:47:43      阅读:143      评论:0      收藏:0      [点我收藏+]

去***讲题,你还***有空翻着列表找题呢?别搞笑了

首先洛谷的题面十分的劝退(至少对我这个菜鸡来说是这样),我来解释一下(原来的英文题面):

有一个有若干个密码(每个密码都可以开箱子)的密码箱,密码是在$0$到$n-1$的数中的,且所有的密码都满足一个条件:如果$x$是密码,$y$也是密码($x$可能等于$y$),那么$(x+y)\%n$也是密码。现在有一个人在试密码,他试了$k$个数,前$k-1$个都是错的,第$k$个是对的。现在你要求这个密码箱最多有多少不同的密码。

显然如果$x$是一个密码,那么$ax\%n(a∈N)$也都是密码。所以我们可以先把$num_k$分解因数,然后我们从小到大枚举因数$f$,如果对于一个因数$f$前$k-1$个数都不能整除它,说明它符合题意,这个时候答案就是$\frac{n}{f}$,也就是取它的所有倍数。

然后我们发现这个玩意直接枚举来做的话理论上最差是$O(sqrt(n)k)$的,看起来根本过不去(实际上可以水过去)。于是学习了一种线性筛的解法

 

解题:POI 2011 Strongbox

原文:https://www.cnblogs.com/ydnhaha/p/9762007.html

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