范围极值查询:从一维到二维的探索
1. 引言
范围搜索是计算机科学中最基础的问题之一,在计算几何、数据库和字符串处理等领域有着重要应用。其问题定义为:输入是 $R^d$ 中的 $N$ 个点的集合 $S$,每个点关联着卫星数据,以及一个定义在卫星数据上的可结合且可交换的聚合函数 $f$。目标是对输入进行预处理,创建一个空间使用合理的数据结构,以便快速回答如下形式的查询:给定任意轴对齐的 $d$ 维矩形 $R$,返回 $R \cap S$ 中所有点的卫星数据上 $f$ 的值。
研究人员考虑了各种聚合函数,如空检查、计数、报告、最小/最大等。一般来说,聚合函数被假定为可分解的,即对于任意不相交的集合 $X, X’ \subseteq S$,可以从 $f(X)$ 和 $f(X’)$ 常数时间内计算出 $f(X \cup X’)$。这里可以区分允许逆运算的函数 $f$(即可以从 $f(X \cup X’)$ 和 $f(X’)$ 常数时间内计算出 $f(X)$)和不允许逆运算的函数(这些函数处于一般半群模型中)。本文将重点关注 $f$ 为最大(或对称地,最小)函数的情况,这是不允许逆运算的函数中最常被研究的。
2. 问题变体
当 $d = 2$ 时,考虑两种问题变体:
- 2D 数组变体 :输入是一个 $m$ 行 $n$ 列的二维数组 $A$,包含 $N = m \cdot n$ 个来自全序集的元素。假设 $m \leq n$ 且 $A$ 的所有元素都是不同的。查询矩形 $R$ 由四个索引 $i_1, i_2, j_1, j_2$ 指定,满足 $0 \leq i_1 \leq i_2 \leq m - 1$ 和 $0 \
超级会员免费看
订阅专栏 解锁全文
1810

被折叠的 条评论
为什么被折叠?



