Given a set $P$ of $n$ points and a set $S$ of $m$ disks in the plane, the disk hitting set problem asks for a smallest subset of $P$ such that every disk of $S$ contains at least one point in the subset. The problem is NP-hard. In this paper, we consider a line-constrained version in which all disks have their centers on a line. We present an $O(m\log^2n+(n+m)\log(n+m))$ time algorithm for the problem. This improves the previously best result of $O(m^2\log m+(n+m)\log(n+m))$ time for the weighted case of the problem where every point of $P$ has a weight and the objective is to minimize the total weight of the hitting set. Our algorithm actually solves a more general line-separable problem with a single intersection property: The points of $P$ and the disk centers are separated by a line $\ell$ and the boundary of every two disks intersect at most once on the side of $\ell$ containing $P$.
翻译:给定平面上一个包含$n$个点的集合$P$和一个包含$m$个圆盘的集合$S$,圆盘击中集问题要求找到$P$的一个最小子集,使得$S$中的每个圆盘至少包含该子集中的一个点。该问题是NP难的。本文研究该问题的直线约束版本:所有圆盘的圆心均位于同一条直线上。我们提出了一个时间复杂度为$O(m\log^2n+(n+m)\log(n+m))$的算法。这改进了先前针对该问题加权情况(即$P$中每个点具有权重,且目标是最小化击中集的总权重)的最佳结果$O(m^2\log m+(n+m)\log(n+m))$。我们的算法实际上解决了一个更一般的具有单交点性质的直线可分离问题:$P$中的点与圆盘圆心被一条直线$\ell$分隔,且任意两个圆盘的边界在包含$P$的$\ell$一侧最多相交一次。