TopCoder SRM 424 DIV1

半月ぶり。なんか睡眠不足で疲れた。

Coding Phase

250点問題
自然数Nが与えられる。各桁の数字をかけた結果がNと等しくなるような自然数Mの中で最小のものの桁数を答える問題。そのようなMが存在しなかったら-1を返す。
まずNを素因数分解しようとしていたけれど、9,8,7...と順番に割っていけばいいんだと思い直す。初め問題を勘違いして、Mの桁数でなくMの値そのものを返そうとしていて少々時間ロス。
600点問題
ゲームっぽい問題。二つのパラメータ、strengthとintellectを持っている。試練のリストが与えられて、それぞれの試練には、こなすのに必要なstrengthとintellectの値、それをこなしたときに得られる経験値が決まっている。strengthとintellectはどちらか片方を満たしていればOK。試練を乗り越えたときに得た経験値は、自分のstrengthとintellectに割り振ることができる。試練は好きな順番で取り組める。このとき、最大で何個の試練をこなすことができるか。
これも問題を勘違いして、strengthとintellectの両方を満たしてないといけないのだと思ってしまっていた。試練をこなす順番で幅優先探索っぽくやろうとしていたけど、経験値を二つのパラメータにどう割り振るかも変化させて調べないといけないのでうまくいかない。混乱してきてパス。
900点問題
600点問題が解けそうになかったので開いてみた。Google Code Jamで出てきそうな数学っぽい問題。たぶん駄目なんだろうなあと思いつつ力任せの方法をとりあえず書いた。ら、サンプルのテストケースが全部通ったので、え? これで良いの? と思いつつ提出してしまった。
けれどもサンプルは小さい入力に対してのものだけというのをうっかり見落としていて、自分で大きい入力を入れてみたら当然のごとく返ってこなかったとさ。

Challenge Phase

周囲の人(自分も含む)の900点がどんどん落とされてる。
250点で怪しそうなのを見つけてじっくり解読していたら、他の人に先を越された。初チャレンジ成功は今回もおあずけ。

System-Testing Phase

なんとか250点問題だけは確保。
意外と250点を落としてる人いるな。

結果

Level Status Coding Time Score
250 Passed System Test 09:08 227.39
600 Compiled 63:32 0.0
900 Challenge Succedded 25:18 0.0

チャレンジなし
スコア 227.39 / 562人中312位 / レーティング 1488→1501

250点問題しか解いてないyellow coderって笑える…。黄色エリアには一度跳ね返されているので、今度は超えられるか。相変わらずLevel2が壁だな…。TopCoderサイトにあるAlgorithm Tutorialsの記事を全部読んだらきっとこの壁は突破できると信じています。
次回は1週間後。