DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

約数チェーン

問題に戻る

解説

S(n)S(n)S(n) の条件を満たす空でない部分集合を 約数チェーン と呼ぶ。

正の整数 mmm について、最大要素がちょうど mmm である約数チェーンの個数を g(m)g(m)g(m) とする。そのチェーンのすべての要素は 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 がただ1つ存在し、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(d)g(d)g(d)
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