2011年6月7日火曜日

それはハミルトン閉路から始まった

今でこそ競技プログラミングに数多く出ている私ですが、半年前~4年前は英語の大会を敬遠していましたので、出ている大会はほんの僅かでした。そもそも、出られる資格のある大会など、ほとんど知りませんでした。JAVAをそれなりに組めるようになり、英語も敬遠するほどではなくなって、今はプログラミング大会、週に一度は出ています。

では、私の競技プログラミングの原点はどこにあるのか。毎年6月に、それを思い出します。Supercon予選です。私の原点はSupercon2006予選のハミルトン閉路問題です。

実際に私が競技プログラミングに参加したはじめての経験は、ハミルトン閉路の一年前、Supercon2005の最長繰り返し区間探索問題でした。ですが、当時はまだまだ未熟であり、自分自身が考えている実感はわきませんでした。今の私だったらどうするでしょう。解説通り、接尾辞木を実装するでしょうか。それとも、また自分なりの解答を考えているでしょうか。

Supercon2006の時は、かなり色々なことを考えました。今、同じレベルのアルゴリズムを作れるかというと、正直無理だと感じます。時間にしても、寝ても覚めても考えていましたから、3週間ずっとかかりっきりだったというのが正確なところです。プログラムを組んだのは友人でしたが、この中で書いたアルゴリズムは恐ろしい数でした。それこそ、レポートパッド一つを書き潰したほどでした。

私にとって、ハミルトン閉路問題は、思い出の問題です。

その、ハミルトン閉路を出した大会"Supercomputing programming contest"は、毎年この時期に予選が開かれています。私はもう参加資格を失ってしまいましたが、ハミルトン閉路問題を考えていたときの情熱は、今の自分にも多くの影響を与えています。

その時のオーバーラップもあって、私は毎年Superconの予選問題を考えています。毎年毎年、でられもしない予選問題を考えるのは滑稽かもしれませんが、でも、それは自分の中で、非常に大きな意味の有ることで、自分のプログラミングに最大のモチベーションを与えてくれるものなのです。

0 件のコメント: