src/cplib/collections/wordsizetree

  Source   Edit

計算量ではNを入力配列長、Uを容量2^24とします。木の段数と整数のビット幅は固定です。

Procs

proc `[]`(self: var WordsizeTree; x: int): bool {....raises: [], tags: [].}
要素xが含まれているかを返します。 時間計算量: O(1)、追加空間: O(1)。   Source   Edit
proc excl(self: var WordsizeTree; x: int) {....raises: [], tags: [].}
要素xを削除します。 時間計算量: O(1)、追加空間: O(1)。   Source   Edit
proc ge(self: var WordsizeTree; x: int): int {....raises: [], tags: [].}
x以上の最小の要素を返し、存在しなければ-1を返します。 時間計算量: O(1)、追加空間: O(1)。   Source   Edit
proc incl(self: var WordsizeTree; x: int) {....raises: [], tags: [].}
要素xを追加します。 時間計算量: O(1)、追加空間: O(1)。   Source   Edit
proc initWordsizeTree(): WordsizeTree {....raises: [], tags: [].}
空のビット集合木を作成します。時間計算量: O(U/64)、戻り値の空間: O(U/64)(全領域のゼロ初期化を含む)。   Source   Edit
proc initWordsizeTree(v: openArray[bool]): WordsizeTree {....raises: [], tags: [].}
真偽値配列からビット集合木を作成します。時間計算量: O(N + U/64)、戻り値の空間: O(U/64)(全領域のゼロ初期化を含む)。   Source   Edit
proc le(self: var WordsizeTree; x: int): int {....raises: [], tags: [].}
x以下の最大の要素を返し、存在しなければ-1を返します。 時間計算量: O(1)、追加空間: O(1)。   Source   Edit