莫反小测试

得分:105/400,排名未知。

A

得分:65/100。

错因:没有运用解耦的思想(\(d | \gcd(i,j)\) 等价于 \(d | i 且 d | j\)),交换求和顺序不熟练。

正解:

\[\sum_{i=1}^n \gcd(i,n) \\ =\sum_{i=1}^n \sum_{d|\gcd(i,n)} \varphi(d) \\ = \sum_{d|n} \varphi(d) \sum_{i=1,d|i} 1 \\ = \sum_{d|n} \varphi(d) \cdot \frac{n}{d} \]

B

得分:40/100

错因:没有想到枚举倍数转化为整除分块,分类讨论不熟练。

正解:

由题目易得 \(\lfloor \frac{a}{b} \rfloor = \frac{a}{b+1}\),因为 \(\lfloor \frac{a}{b} \rfloor\) 为整数,则 \(b+1|a\)

这个式子很像整除分块,考虑枚举 \(b+1\) 的倍数,则满足条件的 \(a\) 即为 \(\sum_{b=1}^y \lfloor \frac{x}{b+1} \rfloor\),于是做完了......吗?

我们注意到 \(a\) 具有隐含的上界,即 \(\frac{a}{b+1} < b \Rightarrow a < b^2 + b\),故 \(a \in [1,b^2+b-1]\)

因此,原先的式子应当变为 \(\sum_{b=1}^y \lfloor \frac{\min(x,b^2+b-1)}{b+1} \rfloor\),这可咋办?

为了去掉这个烦人的 \(\min\) ,我们只好分类讨论:对于 \(b^2+b-1<x\),分子取到 \(b^2+b-1\),直接累加即可;否则,分子取到 \(x\),用整除分块做。

C

错因:没有从无解的情形出发推理,对整除、莫反模型不够敏感,没有接触过“和为XX”这类的方案数统计问题。

\(x \nmid y\),显然无解,因为每个数都得是 \(x\) 的倍数。

\(x \mid y\),考虑到我们更喜欢 \(\gcd=1\) 的形式,因此将 \(y\) 除掉 \(x\),得到新的两条限制:\(\sum a_i = \frac{y}{x}, \gcd\{a_i\} = 1\)

开始莫反。以下,令 \(S=\frac{y}{x}\)

  1. 钦定 \(f(k)\) 表示和为 \(S\)\(\gcd\) 恰好为 \(k\) 的方案数。

  2. 钦定 \(F(k)\) 表示和为 \(S\)\(\gcd\)\(k\) 的倍数的方案数。

倍数形式的正变换显然满足,思考 \(F(k)\) 的求取。

\(\gcd\)\(k\) 的倍数,意味着 \(k\) 需要整除每个 \(a_i\)(这两个条件完全等价)。我们不妨将所有 \(a_i\) 除以 \(k\),这样就消除了这个限制,\(F(k)\) 变成了和为 \(\frac{S}{k}\) 的数列的方案数。

这里介绍“和为XX”这类的方案数统计问题的一般方法:运用插板法,假设有 \(S\)\(1\),每个空插板,可以选择插或不插,则方案数即为 \(2^{S-1}\)

于是,这里的 \(F(k)\) 就是 \(2^{\frac{S}{k}-1}\)。套入逆变换求出 \(f(1)\) 即为答案。

D

错因:这类格点计数问题做少了。

这种计数问题有个一般结论:设一条线距离最远的两个格点的横坐标距离为 \(i\),纵坐标距离为 \(j\),则这条线段上的格点数目为 \(\gcd(i,j)+1\)

证明:从向量的角度出发,由线段的一端到另一端的有向线段可表示为 \((i,j)\),令 \(d=\gcd(i,j)\),则这个向量空间的最小基底就是 \((\frac{i}{d},\frac{j}{d})\),于是 \((i,j)\) 就可以被划分为 \(d\) 段,格点数自然就是 \(d+1\)(加上起点)。

然后这个题的话就是先考虑行、列的贡献,再考虑斜率为正的线段的贡献(斜率为负的乘以 \(2\) 即可),可得到式子:

\[Ans = n {m \choose 3} + m {n \choose 3} + 2(\sum_{i=1}^n \sum_{j=1}^m (n-i)(m-j)(\gcd(i,j)-1)) \]

斜率为正的线段是这么考虑的:先枚举行列差,行 \(n-i\) 种选择,列 \(m-j\) 中选择(可以理解为在 \(1 \sim n\) 中选一个长度为 \(i\) 的子串),再乘上中间的格点数目(选一个)。

然后把 \(\gcd(i,j)-1\) 那里用分配律拆开,分别考虑减数和被减数即可,这是很套路的部分,就不展开叙述了。

总结

交换求和顺序

  • 最里面有 \(\varphi,\mu\) 之类的,先直接提到最外边,从 \(1 \to n\) 加和。

  • 能提出来的尽量往外提。

  • 交换后注意系数。(关注你到底要求什么)

  • 枚举倍数。

重要的等式

  • \(\sum_{i=1}^n \sum_{j=1}^n ij = \sum_{i=1}^n i \sum_{j=1}^n j\)

  • \(\prod_{i=1}^n \prod_{j=1}^n ij = (n!)^{2n}\)

重要的技巧

  • \(k \mid \gcd(i,j)\) 等价于 \(k \mid i 且 k \mid j\)

  • \(\gcd(i,j) = k\) 的充分不必要条件是 \(k \mid i 且 k \mid j\),主要用于莫反。

  • 学会展开求和式,活用 \(\operatorname{sum}(i) = \frac{i \times (i+1)}{2}\)

posted @ 2026-08-05 19:26  _KidA  阅读(7)  评论(0)    收藏  举报