数论

前置知识:常用公式

干货来啦,这里记录了一些推柿子是使用频率很高的公式(貌似可能也不知道有没有证明),善用这些公式可以带来极大的简洁。

  1. \[d(ij)=\sum\limits_{x\vert i} \sum\limits_{y\vert j}[gcd(x,y)=1] \]

    Siyuan 博客中的证明(Extended部分)

  2. \(p_i^{e_i}\)\(n\)的唯一分解

    \[\prod\limits_{i=1}^{k}(p_i^{e_i}+1)=\sum\limits_{i|n}[(i,\frac{n}{i})=1]i \]

前置知识:推柿子小技巧

我会把自己总结的一些常用技巧扔在下面

  1. 改变枚举顺序,常见的有改枚举约数为枚举倍数

前置知识:常见定理

  1. 费马小定理

    \(p\) 为质数且 \(a,p\) 互质,则:

    \[a^{p-1}\equiv 1\pmod p \]

    证明略。

  2. 威尔逊定理

    \(p\) 为质数,则 \((p-1)!\equiv -1\pmod p\)。证明略。

  3. 二次探测定理

    \(p\) 为质数,且 \(x^2\equiv 1\pmod p\),则 \(x\equiv 1\pmod p\)\(x\equiv -1 \pmod p\)

    证明:原式可以写为 \((x+1)(x-1)\equiv 0\pmod p\),由唯一分解定理可知,必然有 \(x\equiv 1\pmod p\)\(x\equiv -1 \pmod p\)。证毕。


莫比乌斯函数及其反演

  • 定义

    定义莫比乌斯函数:

    \[\mu(x)=\begin{cases}1,x=1\\(-1)^k,x=p_1\times p_2 \times ...\times p_k,p_i \in Prime \\ 0,otherwise\end{cases} \]

    可以看到,\(u(x)\)\(x\)有平方因子时为\(0\),否则若\(x\)的质因子个数为奇数则\(\mu(x)=-1\),偶数则为\(1\)

  • 性质

    \[\mu * I = e \]

    其中

    \[I(x)=1,e(x)=\begin{cases}1,x=1\\0,otherwise \end{cases} \]

  • 证明

    显然

    \[(\mu * I)(1)=1 \]

    \(i>1\)

    \[(\mu * I)(i)=\sum\limits_{d|i}\mu(d) \]

    考虑对 \(i\) 进行质因数分解,由 \(\mu\) 的定义我们知道,\(i\) 的平方因子在这里都可以看做次数为 \(1\),即我们可以找到 \(i'=p_1\times p_2 \times ...\times p_k\) 使得 \((\mu * I)(i)=(\mu * I)(i')\)

    思考这个 \(i'\) 的答案,带入容易知道

\[\begin{aligned} \sum\limits_{d|i}\mu(d)&=\sum\limits_{i=0}^{k}(-1)^i1^{k-i}\binom{k}{i} \\ &=(1-1)^k\\&=0 \end{aligned} \]


Min_25筛

  • 定义

    这篇博客这篇博客

  • 一些细节/补充

    1. 可以使用 Min_25筛 的充分条件:\(f\) 是积性函数;\(f(p^k)\) 可以快速计算(\(p\) 是质数);\(f\) 在质数处的前缀和可以快速运算(其实这就是 Min_25筛 的第一部分,当然有时候这个东西可以直接得到,但如果不能直接计算时,要求把 \(f\) 拆成若干个完全积性函数(第一部分需要用到的性质))。
    2. 对于需要保存的形如 \(\lfloor \frac{n}{i}\rfloor\) 的下标,我们可以以 \(\sqrt{n}\) 为界氛围两部分保存。
    3. \(1\) 在所有的函数中均为被算进去,最后要加上 \(1\)。、
  • 例题:

    1. luogu P5325 【模板】Min_25筛 代码
    2. SP34096 DIVCNTK - Counting Divisors (general) 题解

二项式反演

著名的二项式定理:

\[(a+b)^n =\sum\limits_{i=0}^n \binom n k a^k \times b^{n-k} \]

二项式反演就是已知:

\[f_i=\sum\limits_{j=0}^i \binom{i}{j} g_j \]

然后推出来:

\[g_i=\sum\limits_{j=0}^i (-1)^{i-j} f_j \]

证明(在原式中带入 \(g_j\)):

\[\begin{aligned} f_i&=\sum\limits_{j=0}^i \binom{i}{j}\sum\limits_{k=0}^j (-1)^{j-k}\binom{j}{k}f_k\\ &=\sum\limits_{j=0}^i \sum\limits_{k=0}^j(-1)^{j-k}\binom i j \binom j k f_k\\ &=\sum\limits_{j=0}^i \sum\limits_{k=0}^j (-1)^{j-k}\binom i k \binom{i-k}{i-j}f_k\\ &=\sum\limits_{k=0}^i\binom i k\sum\limits_{j=k}^i (-1)^{j-k}\binom{i-k}{i-j}f_k\\ &=\sum\limits_{k=0}^i \binom i k f_k\sum\limits_{j=0}^{i-k}(1-1)^{i-k}\\ &=f_i \end{aligned} \]


Miller_Rabin素数测试

我们钦定一个 \(a\),对 \(p\) 做一次测试:

  1. \(p\) 为素数,首先一定得满足费马小定理。
  2. \(p-1=2^k\times q\),那么 \(a^{2^k\times q}\equiv 1\pmod p\),我们先算出 \(a^q\),然后用二次探测定理一次一次判就好了。

若一个数通过一次测试,则它是素数的概率是 \(25\%\),我们可以多选几个数提高准确率。


BSGS及其拓展

\[a^x\equiv b\pmod p \]

  • BSGS

    先考虑 \((a,p)=1\) 的情况:

    类似分块,我们取块大小为 \(k=\lceil \sqrt p \rceil\),那么如果有解,形式一定可以表达为 \(a^{km-i}\equiv b\pmod p\)\(m\in N^*,0\le i<k\))。也就是 \(a^{km}\equiv b\times a^i\pmod p\)。我们只需要预处理所有 \(k\)\(b\times a^i\)(放在一个哈希表里),然后一个一个查询 \(a^{km}\) 就好了(由欧拉定理,如果 \(m> k\) 还没找到解就一定无解了)。

  • ExBSGS

    现在 \((a,p)\ne 1\) 了,怎么办呢?

    先给出一个结论:若 \((a,p)\nmid b\)\(b\ne1\),则此方程无解(需要注意的是逆命题不一定成立)。

    我们现在把无解的情况判掉,记 \(d=(a,p)\),然后考虑做一点转化:

    \[a^x\equiv b\pmod p\\ a^{x-1}\frac a d\equiv \frac b d \pmod{\frac p d}\\ a^{x-1}\equiv\frac b d(\frac a d)^{-1}\pmod{\frac p d} \]

    如果 \(d=1\), 那么我们可以直接去跑 BSGS,否则我们发现每次迭代后 \(p\) 必然减小,一直迭代下去就好了。


综合例题:

  1. UOJ #42. 【清华集训2014】Sum 题解
  2. CF1106F Lunar New Year and a Recursive Sequence
  3. UOJ #82. 【UR #7】水题生成器
  4. CF364D Ghd
  5. UOJ #216. 【UNR #1】Jakarta Skyscrapers
  6. luogu P5345 【XR-1】快乐肥宅
  7. AGC003D Anticube
  8. AGC010D Decrementing
  9. AGC011E Increasing Numbers
posted @ 2020-06-03 23:56  With_penguin  阅读(233)  评论(2编辑  收藏  举报