計算量では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