Loading

数论

在线 \(O(1)\) 逆元

预处理 \([1, k]\) 逆元,找到一个 \(u\) 使得 \(xu \bmod p \leq k\),则 \(x^{-1}=(xu)^{-1} \cdot u\)

\(x=qB+r\),其中 \(B=p^{1/3}\)\(xu=quB+ru\)。凭感觉 \(xu \bmod p\) 的分布很均匀,因此我们可以让 \(u\) 小一些。\(u \leq p^{1/3}\)\(ru \leq p^{2/3}\)。只要让 \(qBu \bmod p \leq p^{2/3}\) 就行了。

我们进行预处理,对每个 \(q\) 找一个 \(u\) 让该条件满足。注意到 \(B,u\) 都不大,固定 \(B\)\(u\),当 \(q\) 增加时式子只会增加 \(p^{2/3}\) 左右,远小于可行区间 \([kp, kp+p^{2/3}]\),因此我们可以直接让 \(q\) 跳跃,\(O(1)\) 找到下一个合法 \(q\)。总值域 \(p^{2/3}Bu\),跳跃时增加 \(p\),共跳跃 \(p^{-1/3}Bu\) 次,每次跳跃位于长度为 \(p^{2/3}\) 的区间中,带来 \(p^{2/3}/(Bu)\)\(q\),故因此只有 \(p^{1/3}\) 个合法 \(q\)。一共 \(p^{1/3}\)\(u\),故预处理的复杂度为 \(p^{2/3}\)

P7325

参考自魏老师的题解 orz。

考虑贡献即为 \(af_{p-1}+bf_{p}\)

\(f_n=f_{n-1}+f_{n-2}\) 的性质:在模 \(m\) 意义下有长度为 \(O(m)\) 的纯循环节。

首先有 \(af_{i-1}\equiv-bf_{i} \pmod m\),找到 \(d=\gcd(a, b, m)\) 并约去得到 \(\frac{a}{d} f_{i-1} \equiv \frac{b}{d}f_i \pmod{\frac{m}{d}}\),这里把 \(b\) 取反。

我们想要把 \(\frac{b}{d}\) 除到左边去。令 \(d'=\gcd(\frac{b}{d}, \frac{m}{d})\),注意到一定有 \(d' \perp a\),所以一定有 \(d' \mid f_{i-1}\),所以有 \(\frac{a}{d}\frac{f_{i-1}}{d'} \equiv \frac{b}{dd'}f_i \pmod {\frac{m}{dd'}}\),除过去得到 \(\frac{a}{d} (\frac{b}{dd'})^{-1}\frac{f_{i-1}}{d}\equiv f_i \pmod{ \frac{m}{dd'}}\),可以证明 \(\frac{f_{i-1}}{d'} \perp \frac{m}{dd'}\)

提前处理出所有 \((d, d', f_p/(f_{p-1}/d') \bmod \frac{m}{dd'})\) 塞进 map 中,这囊括了答案的所有信息。

有结论 \(d'=\gcd(f_{p-1},\frac{m}{d})\),因此 \(d'\) 不需要枚举。复杂度大概是 \(O(m \log \log m + n) \log m\),其中 \(m \log \log m\)\(m\) 的约数和的数量级。

P5572

\[\begin{aligned} & \sum_{i=1}^n\sum_{j=1}^m \varphi\left(\frac{ij}{\gcd^2(i, j)}\right) \\ = & \sum_{i=1}^n\sum_{j=1}^m \varphi\left(\frac{i}{\gcd(i, j)}\right) \varphi\left(\frac{j}{\gcd(i, j)}\right) \\ = & \sum_{d=1}^m \sum_{i=1}^{n/d} \sum_{j=1}^{m/d} \varphi(i) \varphi(j) [i \perp j] \\ = & \sum_{d=1}^m \sum_{d'=1}^{m/d} \mu(d') \sum_{i=1}^{n/dd'} \sum_{j=1}^{m/dd'} \varphi(id') \varphi(jd') \\ = & \sum_{T=1}^m \sum_{d \mid T} \mu(d) \left ( \sum_{i=1}^{n/T} \varphi(id) \right ) \left ( \sum_{j=1}^{m/T} \varphi(jd) \right ) \\ \end{aligned} \]

\(f(n, d) = \sum_{i=1}^{n} \varphi(id)\),这可以以 \(O(n \ln n)\) 的复杂度预处理。

原式变为 \(\sum_{T=1}^m \sum_{d \mid T} \mu(d) f(n/T, d) f(m/T, d)\)

考虑根号分治,当 \(T < \sqrt{n}\) 时,枚举 \(d\)。否则设 \(g(n, m, s) = \sum_{T=1}^s \sum_{d \mid T} \mu(d) f(n, d) f(m, d)\),一段让 \(n/d\)\(m/d\) 相等的 \(T \in [l, r]\) 的贡献之和为 \(g(n/T, m/T, r) - g(n/T, m/T,l-1)\)

exCRT

\(a+bx_i \equiv c_i \pmod {p_i}\) 合并方程,裴蜀定理判无解。

exBSGS

让方程不断除以 \(\gcd(a, p)\)

$\frac{a}{d}a^{x-1} \equiv \frac{b}{d} \pmod {\frac{p}{d}} \Longrightarrow a^{x-1} \equiv $

P6610

用 CRT 转化为模奇素数。

注意到 \(a^2 \equiv x \pmod p\) 的解的个数是 \(x^{\frac{p-1}{2}}+1\),我们要求的即

\(\newcommand \L[2]{(\frac{#1}{#2})}\) \(\sum_{a}(\L{a}{p}+1)(\L{x-a}{p}+1) = p+\sum_a \L{ax-a^2}{p} = p+ \sum_{a=1}^{p-1} \L{x/a-1}{p}\)

注意到 \(x \neq 0\)\(a/x\) 取遍一个缩系,而缩系内勒让德记号可一一对应得到 \(0\),故答案为 \(p-\L{-1}{p}\)\(x=0\) 时原式即 \(p+(p-1)\L{-1}{p}\)

posted @ 2024-03-07 16:37  purplevine  阅读(15)  评论(0编辑  收藏  举报