数论
1.欧拉函数
我们定义 \(\varphi(n) = \sum^n_{i = 1} [\gcd(i,n) == 1]\)。特殊的当 \(n\) 为质数的时候,\(\varphi(n) = n - 1\)。
假如我们定义 \(n = p_1^{a_1} \times p_2^{a_2} \times \cdots \cdots \times p_k^{a_k}\),那么 \(\varphi(n) = n \times \dfrac{p_1 - 1}{p_1} \times \dfrac{p_2 - 1}{p_2} \times \cdots \cdots \times \dfrac{p_k - 1}{p_k}\)。
对于所有的 \(\gcd(a,b) = 1\),都有 \(\varphi(a,b) = \varphi(a)\varphi(b)\)。
2.数论分块
我们考虑一个式子的值 \(\displaystyle\sum^n_{i=1} \lfloor \dfrac{n}{i} \rfloor\)。
我们发现 \(\lfloor \dfrac{n}{i} \rfloor\) 至多有 \(\lfloor 2\sqrt n\rfloor\) 种值。这个东西很好证明。然后我们只需要知道满足 \(\lfloor \dfrac{n}{i} \rfloor = x\) 的所有 \(i\) 的最小值和最大值,我们记录为 \(l,r\),那么这一个块的贡献即为 \(x \times (r - l + 1)\)。这个东西也很好求,\(r = \lfloor \dfrac{n}{\lfloor \frac{n}{l} \rfloor} \rfloor\),然后下一次的 \(l\) 就是上一次的 \(r + 1\)。
我们发现两个取模乘在一起没有什么很好的性质,所以我们考虑把 \(n \bmod a\) 变为 \(n - a \times \lfloor \dfrac{n}{a} \rfloor\)。然后直接推一波式子即可。然后再套两个整除分块即可。
3.莫比乌斯函数
定义莫比乌斯函数为 \(\mu(n) = \begin{cases} 1 \ \ \ \ \ n = 1 \\ (-1)^r \ \ n = p_1 \times p_2 \times p_3 \cdots \cdots p_r \\ 0 \ \ \ \ \text {其他} \end{cases}\)
定理: \(\sum_{d|n} \mu(d) = \begin{cases} 1 & n = 1 \\ 0 & n > 1 \end{cases}\)
那么 \(\sum_{d \mid n}\mu(d) = \epsilon(n)\),那么 \(\mu(n) * id = \epsilon(n)\)。
如果 \(f\) 为算数函数,\(F\) 为 \(f\) 的和函数,对于任意的 \(n\),满足 \(F(n) = \sum_{d|n} f(d)\),则有 \(f(n) = \sum_{d|n} \mu(d) F(\dfrac{n}{d})\)。
考虑把原本的 4-side 矩形转化成 \(4\) 个 2-side,这样子会好算很多。然后就相当于求出 \(\sum^n_{i=1} \sum^m_{j = 1} [\gcd(i,j) == k]\)。所以就有: