REQLY開発ブログスマートフォン用の表示で見るREQLY開発ブログプロの料理レシピ専門検索エンジンREQLY(レクリー)の開発ブログです。この広告は、90日以上更新していないブログに表示しています。競技プログラミングこんにちは。エンジニアのm2kuです。今回は6/30(土)に行われたbitFlyerさん主催の競技プログラミングコンテスト「codeFlyer」の参加記です。ありがたいことに今回初めてオンサイトのコンテストに参加させて頂き、そして清々しく惨敗させて頂きました。bitflyer.com競技プログラミングとは?競技プログラミングとは、「〇〇を実現するコードを書いてください」という課題がいくつか与えられ、時間内にプログラムを組んで提出し、その正確さや提出の速さを競うものです。与えられる課題は、ただ単純な実装を行うだけでは実行制限時間を超過するようになっていることも多く、その課題に適したアルゴリズムやデータ構造を上手く用いてコードを高速化する必要があります。実装を工夫して計算量を落とせた時に感じる、パズルが解けた時のような気持ち良さが魅力となっています。決戦の地は六本木にある東京ミッドタウンタワーでした。お洒落の最先端を行く東京ミッドタウンにおいて、我々100人のオタクたちが缶詰でプログラミングバトルに興じていることを、どこのマダムが想像しうるのだろうか...会場で受付を済ませるとbitFlyerさんのロゴの入ったTシャツを頂きました。会場までの交通費がTシャツの形で現物支給されるのでしょう。私は関東圏内からの参戦だったのでSサイズを1枚頂きました。中には遠方から新幹線でいらっしゃった方もいたようです。コンテスト本選は計3時間。のたうち回った3時間を時系列でお話ししましょう。圧倒されたのが、開始10秒としないうちに響き渡る100デシベル近いタイピング音。こいつらいつ問題読んだんだよ。Musicを立ち上げ平井堅を再生するところから私の戦いは始まります。頑張ってA問題をこなし、次のB問題。ここから数学的な工夫が要求されてきそうです。問題文を5分ほど睨みましたが、クエリを独立に処理して単純に実装すると計算量がO(NQ)になってしまい、2秒の実行制限時間を超過してしまいます。