adjacent_swap_distance
関数 · 転倒数
template <class T>
std::int64_t adjacent_swap_distance(const std::vector<T> &a, const std::vector<T> &b);
概要
隣接スワップの最小回数
パラメータ
| 名前 | 説明 |
|---|---|
a |
変換元の列 |
b |
変換先の列 |
戻り値
隣接要素の交換で a を b にする最小回数。多重集合として一致しなければ -1
計算量
- 要素数を $n$ として $O(n\log n)$
関連項目
inversion_number— 転倒数inversion_number_of_permutation— 順列の転倒数