src/cplib/collections/staticRMQ

  Source   Edit

C++・amd64・GCC/Clangでは符号付き32/64ビット整数をAVX2で処理する。 AVX2非対応CPUではスカラー処理へ切り替え、他の型とCバックエンドにも対応する。

Types

StaticRMQ[T] = object
  table: seq[seq[T]]
  prefix_product, suffix_product, V: seq[T]
  Source   Edit

Procs

proc initRMQ[T](V: openArray[T]): StaticRMQ[T]
配列をコピーし、区間最小値のテーブルを構築する。   Source   Edit
proc query[T](RMQ: StaticRMQ[T]; l, r: int): T {.inline.}
半開区間 [l, r) の最小値を返す。   Source   Edit