# 简单统计 ## 解法与署名 首选差分与倍数筛,程序为 [std.cpp](std.cpp)。Codex(GPT-6)对本题递推式作差,得到按真因子累加的递推,并应用倍数筛实现;倍数筛本身是已有技术。 出题人解法为整除分块和递增记忆化,完整说明见[整除分块](solution-alternative-quotient-blocks.zh.md),程序为 [alternative-quotient-blocks.cpp](alternative-quotient-blocks.cpp)。该方案直接求递推式,允许流式读取查询。差分方案降低预处理的渐进时间,但当前实现需要存储查询。 ## 对相邻参数作差 所有正参数计算均在模 $P=998244353$ 意义下进行。令 $F(0)=0$ ,定义 $$D(n)=F(n)-F(n-1)\pmod P\qquad(n\ge1)$$ 比较 $F(n)$ 与 $F(n-1)$ .对 $i\ge2$ ,只有当 $i$ 整除 $n$ 时,$\lfloor n/i\rfloor$ 才比 $\lfloor(n-1)/i\rfloor$ 大一。新出现的 $i=n$ 项也可这样处理,因为 $F(0)=0$ .因此 $$D(n)=1+\sum_{\substack{i\mid n\\i\ge2}}D(n/i)=1+\sum_{\substack{d\mid n\\d --std ``` 省略 `--std` 只生成输入,`--case 01` 选择单份输入。独立验证脚本见 [check_r15.py](../../../tools/check_r15.py)。五轮交替计时与内存记录见[测量数据](../../../docs/benchmark-R15.json),环境说明见[评测环境与性能](../../../docs/评测环境与性能.md)。有限测试与具体程序的计时不代替上面的证明,也不保证所有同阶实现都能在同一时限内通过。 ## 实测结果 | 程序 | 最慢用例中位时间 | 峰值工作集 | | --- | ---: | ---: | | 标程 | 0.044081 秒 | 6.46 MiB | | 补充程序 | 0.322212 秒 | 6.01 MiB | 参考时限为 0.5 秒。十份已测正式输入上,两份程序结果一致,均在该时限内完成。上述内存是包含进程开销的峰值工作集,时间与内存的最大值可能来自不同输入。 整除分块的渐进时间更高,但当前范围和校准时限不能可靠排除它;没有扩大范围或缩短正常通过余量来人为区分。