IRU vs SAKI(ふか杯 5th Contest [F])

スポンサーリンク

概要

問題文 →
公式解説 → なさそう?
自分の提出 →

解法

バスターの角度を固定したとき、いくつのマラカスを撃ち抜けるかを計算したいです。実際に計算しやすいのは逆で、マスカラを固定したとき、どのようなバスターの角度であれば撃ち抜けるか?を計算できます。

境界となる角度は、ターゲットとなる点の偏角に、直角三角形の角度を加えるなどして計算できます。ただし、$O$ から距離 $w$ 以下の点については偏角から $90^{\circ}$ ずつ前後したところが境界となります。


各頂点に対して、加算対象となるバスター角度の区間を求めたら、あとは最大いくつの区間が交わるかを求めるだけです。座標圧縮+累積和 / イベントソート などの方法が考えられます。

偏角のとりうる値が任意であれば、「円環上の区間の交わり」を計算することになり面倒ですが、この問題では点が第 $1$ 象限にしかないため、全ての区間を $[-\pi, \pi]$ 内で表しておけば円環特有の面倒さは生じません。

タイトルとURLをコピーしました