研究開発者・ellerのTopCoder挑戦記録。言語は主にJavaを使用しています。ドキュメンテーションコメントはSubmit完了後、ブログ掲載前に補完したものです。23:21http://www.topcoder.com/stat?c=problem_statement&pm=10901&rd=14152『怖い映画を何本か観ようと考える。それぞれの映画には1つずつ怖い瞬間があり観ることで緊張感が増す。緊張感は時間とともに低下し、-0.5になると眠ってしまう。多くの映画を観るためには、どの順番で映画を選択すべきか。同じ本数を観られる組み合わせが複数ある場合、辞書順に最も小さいものを返せ。映画は最大でも7本なので、全探索で問題ないと判断。以前実装したJava版next_permutationを流用し、愚直な実装を目指しました。level(仮に緊張感と翻訳)が小数だとされていますが、これは単に「緊張感が上昇する瞬間」と「睡眠に陥る瞬間」をずらしたいからであると思われます。これらが同時に発生すると「ゼロになると同時に怖い瞬間が来る」場合の振る舞いを問題文に定義する必要があり、説明が面倒なのでしょう。コード上では整数として扱って問題ありません。16:22http://www.topcoder.com/stat?c=problem_statement&pm=10762&rd=14183『T9という文字列変換プロトコルを実装し、引数から文字列を求めよ。13:37http://www.topcoder.com/stat?c=problem_statement&pm=10840&rd=14182『2つの塔を設置したい。塔の中心となる候補地のリストが与えられるので、設置可能な位置と大きさの組み合わせを求めよ。塔は上方から見ると正方形であり、1辺の長さは1の倍数でなければならない。図には様々な角度で描かれていますが、塔が2つしかない以上複雑に考える必要はありません。塔を結んだ線分と塔の1辺が水平である場合のみを考えます。塔の距離を求め、重複組合せを使うことで「可能な大きさの組み合わせ」を求めました。塔が3つ以上の場合もあると勘違いしたことが、スコアを低めた主因です。towersと書かれていた部分を読み飛ばしてしまいました。努力の方向性として「要所を抜き出す」よりも「解読スピードを上げる」を目指すべきだったようです。23:10http://www.topcoder.com/stat?c=problem_statement&pm=10724&rd=14149TLE解消せず。18:00http://www.topcoder.com/stat?c=problem_statement&pm=10589&rd=14147『1と0によって構成された文字列が与えられる。この文字列が与えられた数値を表すように、何進数表記であるかを求めよ。解答の範囲が(0,100]であることと文字列のパース処理(parseメソッド)が基数に対する増加関数であることに目をつけて、基数について2分探索を行いました。positive=ゼロが許されないことを見落としており、数多くのテストを行ったものの解くことができませんでした。確かに0進数があるはずもなく、よく考えれば気づけたはずの失敗です。