We revisit the classic problem of simplex range searching and related problems in computational geometry. We present a collection of new results which improve previous bounds by multiple logarithmic factors that were caused by the use of multi-level data structures. Highlights include the following: \begin{itemize} \item For a set of $n$ points in a constant dimension $d$, we give data structures with $O(n^d)$ (or slightly better) space that can answer simplex range counting queries in optimal $O(\log n)$ time and simplex range reporting queries in optimal $O(\log n + k)$ time, where $k$ denotes the output size. For semigroup range searching, we obtain $O(\log n)$ query time with $O(n^d\mathop{\rm polylog}n)$ space. Previous data structures with similar space bounds by Matou\v{s}ek from nearly three decades ago had $O(\log^{d+1}n)$ or $O(\log^{d+1}n + k)$ query time. \item For a set of $n$ simplices in a constant dimension $d$, we give data structures with $O(n)$ space that can answer stabbing counting queries (counting the number of simplices containing a query point) in $O(n^{1-1/d})$ time, and stabbing reporting queries in $O(n^{1-1/d}+k)$ time. Previous data structures had extra $\log^d n$ factors in space and query time. \item For a set of $n$ (possibly intersecting) line segments in 2D, we give a data structure with $O(n)$ space that can answer ray shooting queries in $O(\sqrt{n})$ time. This improves Wang's recent data structure [SoCG'20] with $O(n\log n)$ space and $O(\sqrt{n}\log n)$ query time.
翻译:在计算几何中,我们重新审视了简单值范围搜索及相关问题的典型问题。 我们展示了一套新结果, 这些结果通过使用多级别数据结构导致的多个对数因素改进了先前的界限。 亮度包括以下内容:\ begin{ suitize} \ 项 。 对于一个不变维度中的 $n 点, 我们给数据结构以 $( n) (或稍好) $( poor n) 空间( poor $ ) 的简单值计算查询。 以 $( log n + k) 最理想的 $( log n + k) 的时间和 $( log\ log n n) 表示输出大小。 对于半组的搜索, 我们得到了$( log n) 的查询时间和$( mathop hoprm log} 空间的相似的旧数据框结构, 从近30年前( \ log+ 1) 美元( 美元) 和 美元( 美元) 美元( 美元) 美元( 美元) 美元( 美元) 美元( 美元) 时间( 美元) 美元) 时间( O+) 时间( 美元) 数字) 数字) 数字( 数字) 数字( 数字) 数字) 数字) 和 数字( 数字) 数字( 数字) 数字) 的解算数据结构中, 数据( 数据( 数字( 数字) 数字) 数字( 和 数字) 数字( 数字) 数字(在一个持续数据结构中, 在一个( 时间( 数据结构中,在时间( )。