Google Code Jam Japan 2011決勝に参加したがTシャツ獲得には戦闘力が遥かに足りなかった件

概要

Google Code Jam Japan 2011の決勝に参加して、自分の力の無さを痛感したので記録しておくことに。



結果

3時間フルで挑んだが、1問も正答を出すことができなかった。
つまり0点


やった問題

3問(A, B, C)の問題の内容を理解したが、実際に取り組んだのは以下の2問。

問題A. アンテナ修復

サンプルのインプットデータでは、答えは出せていたが、なぜかsmallのデータセットでは、うまくいかず、その間違いの原因がずっと有効数字のせいだと思い込んで、ハマっていた。
終了後他の人の回答を見てみたら、有効数字とか関係なかったみたい。
そもそものロジックが間違っていたことに気付けなかったとようだ。

問題B. バクテリアの増殖

smallなら普通に計算していけるかと思ったが、計算量半端なかった。高速に累乗を計算する方法を調べたりしていたが、そのアプローチは間違っていた。頭を柔らかくして数学的なテクニックを使わないと駄目だったみたい。


初めて競技プログラミングしてみて

単純に夢中になれて面白かった。同時に今回の1位の人でも全問解けていないような問題を出してるのかよ・・・と世界の広さと自分の知識不足を痛感した。(今回は日本だけだけど。)

結局は数学的センスが必要なのかな〜とか、壁を感じたりして心が折れたりすることもあったが、まだ基本的なアルゴリズムすら知らないという無知なりの伸びしろというのを信じて、今後も競技プログラミングをちょくちょくしていきたい。


それに浮動小数点の誤差をできるだけ正確に計算する方法ってどうやるんだろうとか、実務でも使える(役に立つ)ような普段は、なんとな〜くいいかなと見過ごしているような細かいところに着目できたりして、いろいろと勉強させられることが多かった。


来年のCode Jamはもちろん、Code Jam Japanが来年もあればまた参加したい。アリ本などをやるなり、たまにTop coderに参戦するとかして戦闘力を地道上げていこうかと思っている。
気分転換もしくは暇な時間に今回解けなかった問題やDevQuizの問題にチャレンジしてみようと思う今日この頃である。