View on GitHub

cp-library

分割の列挙

C++ 用ライブラリ一覧に戻る

ソースコード

nachia/set/enumerate-partitions.hpp

主な機能

非負整数 $n$ に対して $n$ の分割とは、正整数からなる多重集合であって、要素の総和が $n$ であるものである。 $n$ を与えると、これを全列挙する。

関数

EnumeratePartitions

std::vector<CsrArray<int>> EnumeratePartitions(int n)

nachia::CsrArray とは?

$n$ 以下の非負整数 $m$ それぞれについて、 $m$ の分割を列挙する。

返り値を A とすると、 A[m] は $m$ の分割をすべて列挙したものである。 A[m][i] は $m$ の分割であるような多重集合を表す。各多重集合は、要素を昇順に並べた列で表現されている。

参考


TOP PAGE