401.1

自分の実情的には順当な順位くらいだったのに、レーティングが落ちたということは、やはりまだやや高めに設定されているっぽい。250早解きコンテスト、にならないようにしたいなぁ、という感じ。

250

1番上の段には1個まで、2番目の段には2個まで...、という感じでN段ブロックを左寄せで積む方法は何通りあるか答えよ、という問題。


単純にDPをするだけの問題だけれど、やり方を間違えるとうまくいかない。一番下の段にi個ある時、上の段の数は...というDPをやって、最後に一番上の段が0個になるものの相和を取れば良かった。他にも色々とやりようはあると思うけれども。

550

螺旋と直線の交点として可能な点はいくつあるか答えよ、という問題。


取り敢えず直線と言いつつ、ベクトルで与えられるので、大きさが0だったりすると色々と不都合なことが起こるので、例外処理。後は、円と直線の交点を計算して、その点に乗る時の他の座標が存在し得るか判定するだけ。


円と直線の交点の計算に三分探索を行ってみた。(実際に使うのは初めてだったけれど、ちゃんと書けていたっぽい。)だけど、x方向の傾きが0だったりすると、x切片の大きさが距離計算時に影響し過ぎて精度が不足するっぽいので、そういうところを若干修正してみたら通った。


普通の人は多分条件分岐で回すところなんだろうと思う。

950

開いてすらいないけれど、幾何の問題らしい。