TopCoder SRM416 DIV1

半月ぶりのTopCoder。ひゃっほう。
…と思ってやってたら過去最低の出来だった…。前回からの間、過去問を見るとか言っときつつできてなかったからなあ。

250点問題
考え方は間違えていなかったものの、イージーミスをしていて撃墜されてしまいました。テストが足りてなかったね。数値の二進表現に関連した問題だったんですが、シフト演算子">>"とか"<<"がさっと使えなくてベタに掛け算割り算で書いてしまった。ちょっと効率悪い。ビット演算に慣れていないことを実感です。
500点問題
組み合わせ。ちょっとした設定はあるんですが、実質は「合計が与えられた数M(1<=M<=1000000)以下になるような、互いに異なる6個の自然数の組はいくつ存在するか?」という問題です。最大サイズが100万なので、素直に書いた6重ループのような解答では実行時間オーバー。というわけで効率よさそうな方法を探すも、見つからず。正解した人の解答を見てもいまひとつ理解できないので、じっくり考えよう。
1000点問題
問題文を読む時間がなかった。全体で正解者2人だけ。

というわけでスコア0点という結果でした。この結果、レーティングは1400→1275へ下降。このままだとDIV2へ降格しちゃうかもやばい! 250点問題を確実に解くことを心がけて。