はまやんはまやんはまやん

hamayanhamayan's blog

An overnight dance in discotheque [Codeforces Round #418 (Div. 2) D]

http://codeforces.com/contest/814/problem/D

問題概要

N個の円がある
これらの円は互いに交わらない(接する場合はある)
これらの円を2つのグループに分ける。
円は外側から数えて奇数番目の領域は塗られて、偶数番目の領域は塗られない
適切に2つのグループに分けたときに、塗られる領域の面積の最大値は?

解法

http://codeforces.com/contest/814/submission/27654319
まず、円の包含関係より木をつくる。
木の根は盤面とする。

ここからは、木DPでも解けるが、貪欲解法がある。
木の根からの深さが

  • 0 : 何もしない(盤面なので)
  • 1 : 1つ目のグループとする
  • 2 : 2つ目のグループとする
  • それ以降 : 1つ目のグループとする

あとは、この場合での面積を求めて返すと答え
これが正しい証明は思いつかないが、これでうまくいきそうな感じは確かにある
(大きい円を上手く使いたいので、2つのグループに分割するが、小さい方のグループはどっちに置いても関係無い場合がある)