AT_abc448_e 学习笔记
赛时在最后仅剩不到 \(20\) 秒时发现我 \(m\) 和 \(k\) 输入反了,然后就过了。

作为第一次同时场切 D 和 E 的蒟蒻,决定发一篇题解纪念一下。
题目就是给了一个很长的 \(n\) 和 \(m\),求
\[\left \lfloor \frac nm \right \rfloor \bmod 10007
\]
可以证明,令 \(L=m \cdot 10007\),则
\[\left \lfloor \frac nm \right \rfloor \bmod 10007=\frac{n \bmod L}m
\]
证明
设 \(n=qm+r\),则
\[\left \lfloor \frac nm \right \rfloor \bmod 10007=q
\]
于是
\[n \bmod L=(qm+r) \bmod L
\]
因为
\[q = a \times 10007 + b
\]
则
\[n \bmod L = m(b \times 10007 + ?)
\]
最终得
\[\frac{n \bmod L}m = b = q \bmod 10007
\]
所以问题就转化为求 \(n \bmod L\)。
根据我们的输入格式,我们是以一组一组的 \(c,l\) 而输入,我们假设当前构成的数为 \(val\),则
\[val'=10val+c\sum_{i=0}^{n-1} 10^i=10val+c \cdot \frac{10^l-1}9
\]
所以计算
\[\frac{10^l-1}9 \bmod L
\]
这里我们最开始肯定会想到对于 \(9\) 求逆元,但是 \(L\) 可能不与 \(9\) 互质,所以我们可以这么处理。
令
\[t=10^l \bmod (9L)
\]
由于
\[10^l \equiv 1 \pmod 9
\]
所以
\[t=9k+1
\]
那么
\[\frac{t-1}9 \equiv k \pmod L
\]
就做完了。

浙公网安备 33010602011771号