题解 P17213【[ICPC 2017 Nanning R] The Ball】

· · 题解

The Ball

\color{cornflowerblue}{\textsf{Medium}}

给出 n 个半空间 a_ix+b_iy+c_iz\leq d_i\{x\geq 0,y\geq 0,z\geq 0\},求出半空间交内能够放下的最大的球。

1\leq n\leq 100.

\{x\geq 0,y\geq 0,z\geq 0\} 当成一般半空间处理即可,对于半空间 a_ix+b_iy+c_iz\leq d_i,其法向量为 n_i=(a_i,b_i,c_i);假设球心为 c=(x,y,z),球中的点满足 \|p-c\|\leq r,而一个半空间只会对球上的唯一一个点 p=c+r\cdot(n_i/\|n_i\|) 产生最强的限制,因此只需要使得这个点在圆内。

问题被转化成:

\begin{aligned} &\max r \\ &\text{s.t.} \quad a_ix+b_iy+c_iz + r\sqrt{a_i^2+b_i^2+c_i^2}\leq d_i,\quad i=1,\dots,n \end{aligned}

使用单纯形法求解可以通过,也可以使用随机增量法做到 \mathcal{O}(n)