We present efficient dynamic data structures for maintaining the union of unit discs and the lower envelope of pseudo-lines in the plane. More precisely, we present three main results in this paper: (i) We present a linear-size data structure to maintain the union of a set of unit discs under insertions. It can insert a disc and update the union in $O((k+1) \log^2 n)$ time, where $n$ is the current number of unit discs and $k$ is the combinatorial complexity of the structural change in the union due to the insertion of the new disc. It can also compute, within the same time bound, the area of the union after the insertion of each disc. (ii) We propose a linear-size data structure for maintaining the lower envelope of a set of $x$-monotone pseudo-lines. It can handle insertion/deletion of a pseudo-line in $O(\log^2 n)$ time; for a query point $x_0\in\mathbb{R}$, it can report, in $O(\log n)$ time, the point on the lower envelope with $x$-coordinate $x_0$; and for a query point $q\in\mathbb{R}^2$, it can return all $k$ pseudo-lines lying below $q$ in time $O(\log n+k\log^2 n)$. (iii) We present a linear-size data structure for storing a set of circular arcs of unit radius (not necessarily on the boundary of the union of the corresponding discs), so that for a query unit disc $D$, all input arcs intersecting $D$ can be reported in $O(n^{1/2+\varepsilon} + k)$ time, where $k$ is the output size and $\varepsilon > 0$ is an arbitrarily small constant. A unit-circle arc can be inserted or deleted in $O(\log^2 n)$ time.
翻译:我们提出了高效的动态数据结构,用于维护平面中单位圆盘的并集以及伪直线的下包络。具体而言,本文给出了三项主要结果:(i)我们提出了一种线性大小的数据结构,用于在插入操作下维护一组单位圆盘的并集。该结构可在 $O((k+1) \log^2 n)$ 时间内插入一个圆盘并更新并集,其中 $n$ 为当前单位圆盘的数量,$k$ 为因新圆盘插入导致的并集结构变化的组合复杂度。该结构还可在相同时间界内计算每次插入圆盘后的并集面积。(ii)我们提出了一种线性大小的数据结构,用于维护一组 $x$-单调伪直线的下包络。该结构可在 $O(\log^2 n)$ 时间内处理一条伪直线的插入/删除操作;对于查询点 $x_0\in\mathbb{R}$,可在 $O(\log n)$ 时间内报告下包络上 $x$ 坐标为 $x_0$ 的点;对于查询点 $q\in\mathbb{R}^2$,可在 $O(\log n + k\log^2 n)$ 时间内返回所有位于 $q$ 下方的 $k$ 条伪直线。(iii)我们提出了一种线性大小的数据结构,用于存储一组单位半径的圆弧(不必然位于相应圆盘并集的边界上),使得对于查询单位圆盘 $D$,可在 $O(n^{1/2+\varepsilon} + k)$ 时间内报告所有与 $D$ 相交的输入圆弧,其中 $k$ 为输出大小,$\varepsilon > 0$ 为任意小的常数。单位圆弧的插入或删除操作可在 $O(\log^2 n)$ 时间内完成。