Lib/next_permutation
順列の全探索
code:cpp
vector<ll> v(n);
iota(ALL(v), 1);
do{
// do~
}while(NP(ALL(v)));
vは順列でなくともよい
N要素からM個選ぶ組み合わせ
code:cpp
vector<ll> c(n,0);
// do{ ...
総和がNになるような長さMの整数列の列挙
非負整数列なら、M-1 個の 0 と N 個の 1 を並べた列について、順列が総和が N になるような長さ M の非負整数列と 1 対 1 に対応します (先頭と末尾にも 0 があると思って、隣り合う 0 の間の 1 個の数を数える)
prev_permutationもある(辞書順降順)