src/cplib/math/xor_basis

  Source   Edit

Types

XorBasis = ref object
  basis*: seq[int]
  Source   Edit

Procs

proc can_make(self: XorBasis; x: int): bool {....raises: [], tags: [].}
基底のXOR和でxが作成可能か?   Source   Edit
proc incl(self: XorBasis; x: int) {....raises: [], tags: [].}
  Source   Edit
proc index(self: XorBasis; x: int): int {....raises: [], tags: [].}
作成可能な値の中でxが小さい方から何番目か どの基底を使うかもコレの結果をseq[bool]として見ればわかる   Source   Edit
proc initXorBasis(): XorBasis {....raises: [], tags: [].}
  Source   Edit
proc initXorBasis(A: openArray[int]): XorBasis {....raises: [], tags: [].}
  Source   Edit
proc kth_smallest(self: XorBasis; k: int): int {....raises: [], tags: [].}
作成可能な値の中でk番目に小さいものを求めます。 存在しない場合は、-1を返します。   Source   Edit
proc le(self: XorBasis; x: int): int {....raises: [], tags: [].}
作成可能な値の中でx以下の内最大のもの   Source   Edit
proc len_basis(self: XorBasis): int {....raises: [], tags: [].}
基底の本数を返す   Source   Edit
proc lt(self: XorBasis; x: int): int {....raises: [], tags: [].}
作成可能な値の中でx未満の内最大のもの 存在しない場合は-1   Source   Edit
proc xor_kth(self: XorBasis; x: int; k: int): int {....raises: [], tags: [].}
作成可能な値の中でxとxorを取ったときにk番目に小さくなるもの 存在しないならば-1を返す。   Source   Edit
proc xor_min(self: XorBasis; x: int): int {....raises: [], tags: [].}
作成可能な値の中でxとxorを取ったときに値が最小となるものを求める   Source   Edit