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: