とりあえずrange tree + fractional cascadingを貼ったらMLEした。
2点の表札が同じであるとき、またその時に限り、それぞれの点から見てもう一つの点は正方形に入っていることに注目して平面走査する[1]。
各点についてクエリを用意しておいて、個のクエリをに関してソートする。あとはクエリの先頭から順に平衡二分木に座標を追加/削除していく。を追加する際ににすでに点がなければ、新しい表札が必要ということになる。
座標の重複があるのでmultisetにあたるものが必要だと思うけど、とりあえず普通のtreapを投げたら通ってしまった。(キーが全部衝突すると深さがになるのでハック可能なはず。)
全部でやったが、もちろんでもよい。 ↩︎