1. 程式人生 > >解題:POI 2011 Strongbox

解題:POI 2011 Strongbox

十分 color 開箱 www pan 多少 :poi www. bsp

去***講題,你還***有空翻著列表找題呢?別搞笑了

首先洛谷的題面十分的勸退(至少對我這個菜雞來說是這樣),我來解釋一下(原來的英文題面):

有一個有若幹個密碼(每個密碼都可以開箱子)的密碼箱,密碼是在$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