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 \]

就做完了。

posted @ 2026-03-07 22:43  constexpr_ll  阅读(0)  评论(0)    收藏  举报