D - きつねさんからの挑戦状 Editorial by maspy


簡単のため,以下の議論で現れる直線(道路・角の二等分線・垂直二等分線)はすべて平行でないものとして説明します.


\(2\) つの道路 \(X,Y\) に対して,「\(X\), \(Y\) から等距離である点全体の集合」は,これらの角の二等分線 2 つの和集合です.

\(2\) つの点 \(P,Q\) に対して,「\(P\), \(Q\) から等距離である点全体の集合」は,これらの垂直二等分線です.

直線の集合 \(L\) を,

  • 道路の角の二等分線すべて
  • 2 点の垂直二等分線すべて
  • \(x=\pm R\), \(y=\pm R\) (候補となる領域の境界線)

を集めたものとします.


これらの直線をすべて平面に描くと,平面全体はいくつかの凸領域に分割され,各領域においては「最も近い道路」「最も近い住居」がどれであるかは一定です.よって,この領域において \(f(x,y)\) は,定直線・定点との距離から定まるものとして扱えます.

さらに,この凸領域を境界を含めて考えると, \(f(x,y)\) が最大となる点は,領域の頂点(凸多角形として見たときの頂点)のいずれかであることが分かります.これは,\(f(x,y)\) の次の性質によります:

  • 直線 \(\ell\) をひとつ固定すると,\(f\)\(\ell\) 上で下に凸な 2 次関数である.したがって,線分上ではその端点のどちらかで最大値をとる.

結局,\(f\) の最大値をとる点の候補を,\(L\) の直線 2 つの交点に限定できます.よって,次のように答を求めることができます.

(1) \(L\) の直線を列挙する.

(2) \(L\) の直線 2 つの交点を列挙する.

(3) 領域 \([-R,R] \times [-R,R]\) 内の各交点に対して \(f(x,y)\) を計算する.それらの最大値が答である.

posted:
last update: