src/cplib/collections/ppunionfind

  Source   Edit

Types

PartialPersistentUnionFind = object
  par_or_siz: seq[int]
  time: seq[int]
  size_time: seq[seq[int]]
  size_value: seq[seq[int]]
  last: int
  Source   Edit

Procs

proc initPartialPersistentUnionFind(N: int): PartialPersistentUnionFind {.
    ...raises: [], tags: [].}
  Source   Edit
proc issame(self: var PartialPersistentUnionFind; u, v, t: int): bool {.
    ...raises: [], tags: [].}
  Source   Edit
proc issame(self: var PartialPersistentUnionFind; u, v: int): bool {....raises: [],
    tags: [].}
  Source   Edit
proc root(self: var PartialPersistentUnionFind; x: int): int {....raises: [],
    tags: [].}
  Source   Edit
proc root(self: var PartialPersistentUnionFind; x: int; t: int): int {.
    ...raises: [], tags: [].}
  Source   Edit
proc size(self: var PartialPersistentUnionFind; x, t: int): int {....raises: [],
    tags: [].}
  Source   Edit
proc size(self: var PartialPersistentUnionFind; x: int): int {....raises: [],
    tags: [].}
  Source   Edit
proc unite(self: var PartialPersistentUnionFind; u, v, t: int): bool {.
    discardable, ...raises: [], tags: [].}
  Source   Edit
proc unite(self: var PartialPersistentUnionFind; u, v: int): int {.discardable,
    ...raises: [], tags: [].}
  Source   Edit
proc when_unite(self: var PartialPersistentUnionFind; u, v: int): int {.
    ...raises: [], tags: [].}
頂点uとvが連結になった時間を返す。 連結ではない場合、-2が返る(最悪か? 時刻-1を開始にしてしまったため仕方なく...)   Source   Edit