二维支配彩色范围计数的自适应数据结构
在处理二维数据时,二维三边戳刺计数问题是一个重要的问题,它涉及到计算与给定查询点相交的矩形数量。本文将介绍两种解决方案:一种是使用 $O(n \lg \lg n)$ 字空间的解决方案,另一种是线性空间的解决方案。
1. $O(n \lg \lg n)$ 字空间解决方案
该方案分为两个部分:K 上限的二维三边戳刺计数和自适应二维三边戳刺计数。
1.1 K 上限的二维三边戳刺计数
在这个版本的问题中,我们在构建数据结构之前会给定一个固定值 K。如果与查询点 $Q$ 相交的矩形数量 $|S \cap Q|$ 大于 K,数据结构将返回失败;否则,它将计算并返回 $|S \cap Q|$。
操作步骤如下:
1. 构建 S 的 K 级浅切割 $\Gamma$,它包含 $2n/K$ 个形式为 $[x_1, x_2] \times (-\infty, y_2]$ 的单元格。
2. 根据引理 5,$\Gamma$ 的每个单元格最多与 S 中的 2K 个矩形相交。在每个单元格中,构建用于二维三边戳刺计数的非自适应数据结构。
3. 每个单元格的数据结构需要 $O(K)$ 字,由于浅切割包含 $O(n/K)$ 个单元格,总空间成本为 $O(n)$ 字。
4. 对于查询点 $Q = (q.x, q.y)$,首先确定是否有单元格包含 Q。如果没有,根据引理 5,有超过 K 个矩形包含 Q,返回失败。
5. 可能包含 Q 的唯一单元格是从左数第 $\lfloor q.x/K \rfloor$ 个单元格,可以在常数时间内确定。
6. 通过对该单元格构建的戳刺计数数据结构进行查询,使
超级会员免费看
订阅专栏 解锁全文
17

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



