D - Concentric Circles 解説 by hiro1729

ベクトルを用いる実装が楽な解法

公式解説 では線分 \(PQ,RS\) の垂直二等分線の方程式を求めて比較していますが、ベクトルを用いる実装が楽な解法を紹介します。

\(P,Q,R,S\) の位置ベクトルをそれぞれ \(p,q,r,s\) とします。2 線分が平行であることとそれらの垂直二等分線が平行であることは同値なので、平行である条件は \(q-p\)\(s-r\) が平行であることに言い換えられます。これは簡単に判定できます。

2 線分の垂直二等分線が一致することは、2 つの線分の中点を結ぶ直線とどちらかの線分が垂直であることと同値です。したがって、2 線分の中点を結んだベクトル \(\displaystyle \frac{r+s}{2} - \frac{p+q}{2}\)\(s-r\) の内積が \(0\) かどうかを判定すればよいです。

実装例 (Python): https://atcoder.jp/contests/abc467/submissions/77610389

投稿日時:
最終更新: