qoj18370 Map1e

\(R(k)= \underbrace{111\dots1}_{k}\)

多次询问 \(N\),求出最大的 \(k\) 使得 \(R(k)\) 整除 \(N\)

\[|N|\le 10^5,\sum |N| \le 5\times 10^5 \]


\(R(k)=\dfrac{10^k-1}9\),则欲最大化 \(k\) 使得

\[10^k-1 \mid 9N \]

不妨记 \(M=9N,r(k)=10^k-1\),欲满足:

\[M\equiv 0\pmod{r(k)} \]

注意到

\[10^k\equiv 1\pmod{r(k)} \]

因此相当于每 \(k\) 个数一段,每段求和,记所得和为 \(s(k)\)

我们希望 \(s(k)=qr(k)\),其中 \(q\) 为整数,且 \(q\le n\)

不妨取若干模数 \(\text{mod}\),若模 \(\text{mod}\) 意义下 \(s(k)(r(k))^{-1}>n\),则 \(q\) 必不为整数。

如此即可 \(\mathcal O(\frac nk)\) 检验每个 \(k\),由调和级数性质,时间复杂度 \(\mathcal O(\sum|N|\ln|N|)\)


出题人没素质卡了常见模数,有一个快速生成罕见模数的方法。

openssl prime -generate -bits 30
posted @ 2026-08-19 23:56  CuteNess  阅读(19)  评论(2)    收藏  举报