Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

クラス Multiset

本機能は AtCoderLibrary ではなく C++標準ライブラリ std::multiset の移植です.

多重集合を表すクラスです.

  • 定数個の要素の追加
  • 特定の要素の個数

$O(\log N)$ の時間で求めることができるデータ構造です.

コンストラクタ

Multiset

public Multiset()

空の多重集合を作ります. 計算量 $O(1)$

public MultiSet(List<T> list)

listの各要素を持った多重集合を作ります. 計算量 $O(list.size())$

メソッド

add

public void add(T elm, long amount)

多重集合に要素elmamount個加えます. 計算量 O(log N)

addOne

public void addOne(T elm)

多重集合に要素elmを1個加えます. 計算量 O(log N)

removeOne

public void removeOne(T elm)

多重集合から要素elmを1個取り除きます. 計算量 O(log N)

removeAll

public void removeAll(T elm)

多重集合から要素elmを全て取り除きます. 計算量 O(log N)

merge

public static<T> Multiset<T> merge(Multiset<T> a, MMultiset<T> b)

abの和集合となる多重集合を新たに構成して返します.