タグ

ブックマーク / qiita.com/goonew (2)

  • Predecessorを高速に解くデータ構造: Y-Fast Trie - Qiita

    整数は0と1からなる文字列だよ派です(計算機モデルとしてWord-RAMを仮定). この記事は文字列アルゴリズム Advent Calendar 2017 17日目の記事です. vEB木と並んで高速にpredecessorを解くデータ構造y-fast trie1を紹介します. 文字列のキーワード索引などでよく利用されるトライ構造(Trie)で整数集合を管理する面白いデータ構造です. Predecessor Dictionary Problem 全体集合$U = \{ 0, \ldots, u-1 \}$の部分集合$S \subseteq U$に対して,以下のクエリをサポートするデータ構造をpredecessor dictionaryといいます. $\mathit{Predecessor(x)}$: $x$以下の$S$の要素で一番大きいものを返す. $\mathit{Successor(x)

    Predecessorを高速に解くデータ構造: Y-Fast Trie - Qiita
  • Compact Directed Acyclic Word Graphを定義する - Qiita

    これは「文字列アルゴリズム Advent Calendar 2017」4日目の記事です. 3日目の記事は@itomomotiによる「周期性補題」でした. 5日目の記事は@kazu0x17による「木の同型性判定」です. 昨年の文字列アルゴリズム Advent Calendar では「Suffix Tree + Suffix Array = Suffix Tray」という記事を書きました. はじめに 文字列アルゴリズム,特に文字列に対する索引が好きです. 古典的な全文索引であるCompact Directed Acyclic Word Graph (以下CDAWG)を紹介するのがこの記事です.この記事の内容は基的に以下の論文内で示されています. Anselm Blumer, Janet Blumer, David Haussler, Andrzej Ehrenfeucht, M. T. Ch

    Compact Directed Acyclic Word Graphを定義する - Qiita
  • 1