DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

约数链

返回题目

题解

将满足条件的 S(n)S(n)S(n) 的非空子集称为 因数链。

对于正整数 mmm,定义 g(m)g(m)g(m) 为最大元素恰好为 mmm 的因数链数量。此链中的所有元素都是 mmm 的因数。

移除最大元素 mmm 后,剩余部分要么为空集,要么是一条最大元素为 mmm 的真因数 ddd 的因数链。反之,向任一这样的链添加 mmm,都会得到最大元素为 mmm 的合法链。因此,

g(m)=1+∑d∣md<mg(d)g(m)=1+\sum_{\substack{d\mid m\\d<m}}g(d)g(m)=1+d∣md<

其中最前面的 111 对应只包含 mmm 的单元素链。

从 S(n)S(n)S(n) 选择的每条因数链都存在唯一的最大元素 ddd,且 d∣nd\mid nd∣n,因此

f(n)=∑d∣ng(d)f(n)=\sum_{d\mid n}g(d)f(n)=d∣n∑​g(d)

按顺序计算 g(1),g(2),⋯ ,g(N)g(1),g(2),\cdots,g(N)g(1),g(2),⋯,g(N)。首先把所有 g(m)g(m)g(m) 初始化为 111。当 已经确定时,把它加到 的每个真倍数 对应的 上。由于 ,处理 时所有真因数的贡献都已计入。

根据递推式,∑d∣n,d<ng(d)=g(n)−1\sum_{d\mid n,d<n}g(d)=g(n)-1∑d∣n,d<n​g(d)=g(n)−1,所以

f(n)=2g(n)−1f(n)=2g(n)-1f(n)=2g(n)−1

仿照埃拉托斯特尼筛法遍历倍数,总时间复杂度为 O(Nlog⁡N)O(N\log N)O(NlogN),空间复杂度为 O(N)O(N)O(N)。当 1≤n≤100 0001\le n\le 100\,0001≤n≤100000 时,最大答案为 ,可以用有符号 位整数表示。

Solution written by GPT6

m
​
∑
​
g
(
d
)
g(d)g(d)
g(d)
ddd
mmm
g(m)g(m)g(m)
d<md<md<m
g(d)g(d)g(d)
f(86 400)=7 291 135f(86\,400)=7\,291\,135
f(86400)=7291135
646464