AtCoder Beginner Contest 226 F 問題 Score of Permutations
問題
提出解答
問題の概要
の置換 に対して, を以下で定義する.
- (恒等置換) を満たす最小の正の整数
の置換 全てにおける の総和を求めよ.
制約
解法
置換 に対して, は の位数である. ここで, 置換において, 以下の性質がある.
- 任意の置換は互いに交わらない巡回置換の積に分解できる. しかも, この分解は順番の違いを除いて一意である.
- 置換 が互いに交わらないサイズ の巡回置換に分解できたとき, 位数は である.
互いに交わらないサイズ の巡回置換に分解するような置換の数を求める. このとき, 以下のような手順で計算することになる.
- 要素から, サイズ の巡回置換を生み出す方法は, 通りである.
- 残りの 要素から, サイズ の巡回置換を生み出す方法は, 通りである.
- 残りの 要素から, サイズ の巡回置換を生み出す方法は, 通りである.
ここで, サイクルのサイズが同じ場合, 同じサイクルの巡回置換の生み出す順番による重複が存在する. これについては, の中に, が 個あるとき, 重複度は である.
よって, サイズが互いに交わらないサイズ の巡回置換に分解するような置換の数 は,
である.
よって, 求めるべき値は, の分割全ての集合を としたとき,
である.
の分割数を と書くことにすると, なので, 計算量 で求めることができる.