# 题解:某不科学的单调序列的最大公约数之和 Codex(GPT-6):应用欧拉函数展开和可重复组合计数,结合整除分块及前缀递推,给出本题证明与实现。 ## 公约数展开与多重集合 由 $g=\sum_{d\mid g}\varphi(d)$ ,只需统计所有元素被 $d$ 整除的序列。除以 $d$ 后,元素属于 $1,\ldots,q$ ,其中 $q=\lfloor n/d\rfloor$ .一个不增序列唯一对应一个大小为 $m$ 的多重集合,方案数为隔板法给出的 $\binom{q+m-1}{m}$ .因此 $$A=\sum_{d=1}^{n}\varphi(d)\binom{\lfloor n/d\rfloor+m-1}{m}$$ 每个序列对全部公约数贡献的欧拉函数之和等于其最大公约数,故该式准确计数答案。 ## 按商分块 设 $\Phi(x)=\sum_{d\le x}\varphi(d)$ .在相同商 $q$ 的区间 $[l,r]$ ,贡献为 $$\left[\Phi(r)-\Phi(l-1)\right]\binom{q+m-1}{m},\qquad r=\lfloor n/q\rfloor$$ 用线性筛预处理到 $B=\min(n,2000000)$ .由 $\sum_{d\mid u}\varphi(d)=u$ ,有 $$\Phi(x)=\frac{x(x+1)}2-\sum_{k=2}^{x}\Phi(\lfloor x/k\rfloor)$$ 右侧继续按商分块并记忆化大参数。递归参数严格减小,小值来自筛法,因而递推正确。所有大参数均为 $\lfloor n/i\rfloor$ ,用 $\lfloor n/x\rfloor$ 作为缓存下标,存储 $O(n/B)$ 项。 共享组件也维护 $\sum_{d\le x}d\varphi(d)$ ;本题只使用第一分量,第二分量不参与答案,也不改变渐进复杂度。 ## 组合数求值 令 $C(q)=\binom{q+m-1}{m}$ .从 $C(1)=1$ 开始,利用 $$C(q)=C(q-1)\frac{q+m-1}{q-1}$$ 线性预处理到 $B$ .$q-1