中文

树路径多数查询数据结构

数据结构与算法 2018-09-10 v2

摘要

我们提出了关于树路径上 τ\tau-多数问题的首个解决方案。给定一棵 nn 个节点的树,每个节点带有来自 [1..σ][1..\sigma] 的标签,以及固定阈值 0<τ<10<\tau<1,此类查询给出两个节点 uuvv,并要求给出在从 uuvv 的路径 PuvP_{uv} 中出现次数多于 τPuv\tau \cdot |P_{uv}| 的所有标签,其中 Puv|P_{uv}| 表示 PuvP_{uv} 中的节点数。注意任意查询的答案为大小至多为 1/τ1/\tau。在 ww 位 RAM 上,我们获得了一种线性空间数据结构,其查询时间为 O((1/τ)lognloglogwσ)O((1/\tau)\log^* n \log\log_w \sigma)。对于任意 κ>1\kappa > 1,我们也可构建一种使用 O(nlog[κ]n)O(n\log^{[\kappa]} n) 空间的结构,其中 log[κ]n\log^{[\kappa]} n 表示对 nn 连续取 κ\kappa 次对数的函数,并以 O((1/τ)loglogwσ)O((1/\tau)\log\log_w \sigma) 时间回答查询。两种结构的构造时间均为 O(nlogn)O(n\log n)。我们还描述了两种具有与线性空间结构相同查询时间的简洁空间方案。一种使用 2nH+4n+o(n)(H+1)2nH + 4n + o(n)(H+1) 位,其中 HlgσH \le \lg\sigma 为标签分布的熵,并可在 O(nlogn)O(n\log n) 时间内构建。另一种使用 nH+O(n)+o(nH)nH + O(n) + o(nH) 位,并以高概率在 O(nlogn)O(n\log n) 时间内构建。

关键词

引用

@article{arxiv.1806.01804,
  title  = {Tree Path Majority Data Structures},
  author = {Travis Gagie and Meng He and Gonzalo Navarro},
  journal= {arXiv preprint arXiv:1806.01804},
  year   = {2018}
}