多重集合の実装方法とそれぞれのユースケース
- ソートされた Vec
- 区間最小値や区間要素数などは Vec でもできる
- k 番目取得もできる
- BTreeMapと違って、変更に弱い
- PriorityQueue (BinaryHeap)
- 最大値の取得・削除と挿入だけできれば良い場合は BTreeMap より高速
- HashMap
- BTreeMap
- どれか1つの値を取得したい場合(HashMap だと遅い可能性がある)
- 全体やある範囲での max/min を取得
- ある範囲に値があるかを判定
- FenwickTree
- ある区間に含まれている個数の取得
- 全体やある範囲での k 番目の値の取得
- エントリーされる値はあらかじめわかる(エントリー可能な値は初期化の段階で決める必要がある)
多重集合の数え上げ
重複組合せ
メモ
https://atcoder.jp/contests/abc367/tasks/abc367_f ソートして一致:多重集合として一致