C/C++の宿題を片付けます 94代目
■ このスレッドは過去ログ倉庫に格納されています
0588デフォルトの名無しさん
2007/08/05(日) 21:31:20http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4823.cpp
アルゴリズムは
(1)各円の上端,下端,及び任意の2円の交点のy座標の集合{y0, y1, ..., yn} (yi < yj if i < j)を求める.
(2)各区間[y0, y1], [y1, y2], ...についてy軸に垂直な直線y = tをとり,その直線上に表れる色の集合を求める.
(区間内であれば集合の要素は変わらないはずなので,tはそれぞれ(y0,y1),(y1,y2),...の中点としている)
(3)各区間の色の集合の和が,平面上に表れる色の集合となる.
でいいはずだけど,円の交点求める公式とかもう記憶の彼方だし(2)の処理も適当なので,正しく動かないかもしれない.
入力:
円の個数 n
[x, y, r, col] * n
例
3
0.0 0.0 1.0 1
0.0 0.0 3.0 2
0.0 0.0 2.0 3
(出力:2)
■ このスレッドは過去ログ倉庫に格納されています