Description:
ある、直方体のオブジェの中に、N個の泡がある。
泡は球状で、オブジェからはみ出す位置には存在していないが、他の泡と重なっていることはある。
このオブジェを水平にスライスしながら下から上へと見ていく時、連続した泡で出来た空間の数はどのように推移するか?
空間の数が増える、減るを1,0で表現し、"11011000"のように答えよ。
Nは100以下、球の半径は2000以下、直方体のオブジェの大きさは、4000*16000*36000。
球同士は重なったり、他方を完全に含んでいたりする事はあるが、1点で接することは無く、
球の上端、下端、二つの球の交わる面が作る円のz座標の上端、下端は、各々最低でも0.01は異なっている。
Answer:
幾何の典型的なイベントポイント問題。
「最低でも0.01異なっている」が殆ど答えなヒントで、その4種類のz座標がイベントポイントとなる。
イベントポイントを全て列挙したら、隣接するイベントポイントの間で、空間がいくつ出来るかを実際に計算。
特定のz座標のにおける半径は簡単に求まるので、この円同士がくっついているかどうかで同値類分解をすれば良い。
イベントポイントO(n^2) * 同値類分解 O(n^2)で O(n^4) = 1億。
Source: