競プロを始めて1年が経って思うところをまとめた

こんにちは、すぎやんです。
去年の4/14にAtCoderのコンテストに初めて参加してから1年が経ちました。ちょうどいい節目のような気がしたのでこれまでの競プロ生活を少し振り返ってみようと思います。

なぜ競プロをはじめたか

去年の4月に競プロのコンテストに参加したと先ほど言いましたが、厳密にいうと競プロに出会ったのはこのタイミングではありません。多分同様の経験をした人も一定数いるのではないかと思うのですが、初めに競プロを布教されたタイミングではそこまでやりこむことはしませんでした。
f:id:yuji9511yuji:20190415184839p:plain
これは僕の精進グラフです。これを見れば一目瞭然なんですが、AtCoderの問題を初めて解いたタイミングとコンテストに参加してレートがつき始めたタイミングには1年くらいの差があります。別に実力不足を気にして隠れて精進していたわけではなく、ここまでは競プロに対する熱が特にありませんでした。
最初に競プロに出会ったのは学部2年の時に僕が属していたeeic (工学部電子情報工学科)でふと開催された「競プロをやってみよう」という企画でした。
企画してくれたのは学科の同期ですでに競プロをある程度やっていた人たちで、ABCの適当な回からA~Dの4問を持ってきて情報教育棟あたりでみんなでやってみましょうみたいなものです。
当時学科ではC言語を習い始めたばかりで僕自身も学科に入って初めてプログラミングというものに出会ったので、まだ右も左もわからない状態でした。それでもC問題くらいまでは考えれば解けるんだなぁみたいに思った記憶があります(当時は考察よりも実装が全くできなかった気がします)。
そんな感じで競プロと出会ったわけですが、この時はそこまで魅力を感じるようなことはありませんでした。なぜでしょうかね。
今となってはこんなに楽しいのになぜすぐ始めなかったんだという感じですが、おそらく学科の課題などで余裕がなかったのではないでしょうか。
あと、プログラムを書くことに慣れていないので自明な問題の解答を書き起こせないもどかしさみたいのもあったのかもしれません。

こんな感じで1年間は温めておいた競プロですが、ちょうど去年の4月ごろに突然ブームが訪れます。
このブームの着火剤はなんだったのでしょうか。最近しばらく思い出そうとしているのですが思い出せません。
きっと誰かが競プロの話をしていたとか何かあったんだと思うのですが特に記憶に残っていないんですよね。でも今ほど周りの人がみんなやっていて触発されたという状況ではないと思うので謎は深まるばかりです。
まぁもともと受験っぽい数学とかを考察して解き進めるみたいな作業は好きだったのでもともと相性はいいんだと思ってます。
こうしてコンテストに参加し始めました。

開始当初の目標とか

誰しも初めはこの辺を目指したいみたいな目標を持つと思います。僕もそうしたものは最初からあって、簡潔にいうと「やっていれば青色にはなるだろう」という所感でした(まだなってませんがw)。水色までは慣れさえすればすぐに到達し、そこからアルゴリズムや競プロ特有のテクニックを少し習得すれば青にはなるんじゃないかなーと思っていました。黄色に関してはセンスによっては到達できないかもくらいに考えていました。頭の構造的に橙以上は到達できないだろうという感じです。
この感覚は現在もそんなに変わってないです。黄色が開始当初よりは雲の上ではなくなったかなーという感じです。今年の中頃には青になっていると信じたいのでそこからどの辺まで上がるかというところです。

緑になった時

6回くらい参加したら緑になったのでここまでは順調という感じでした。1回だけBで手こずりCが解けないという激ヤバ回がありましたがそれ以外は特に問題なく徐々に競プロに慣れていきました。

水色になった時

水色になった時は前にブログにまとめました。
ysugiyama.hatenablog.com

10回程度で水色手前になったのですが、そこから何回か連続で失敗したので思っていたより水色になるのに時間がかかりました。
この頃にABC-C,Dの過去問をやるべきだと思い、上から埋め始めました。水色になるくらいには難しいものを除きだいたいこなしていた気がします。
また、水色になった瞬間に連続で2回冷えて緑に包まれた時は自分のポテンシャルを少し疑いました。そこから連続でうまくいったので挽回することはできました。

水色になってから

水色になってからはコンテストごとではなく企業コンも含め点数順に埋めていきました。
400点の解ける割合が増えてきたので500点や600点の簡単な問題に少しずつ慣れていきました。次第に考察重視の問題が増えてきたので、早く実装することはもちろん、じっくり考える習慣をつけるようにしました。
よく「◯◯になるために習得したテクニック」みたいなのを列挙している記事を見ますが、あのような形式で実力を把握するのはあんまり意味がないかなーと思ってます。「このようなタイプの問題でこれらの解法の選択肢が思い浮かぶ」みたいな部分に実力の指標がありそうです。

オンサイトのコンテストとかイベントとか

オンサイトで対面して議論したり同時に競プロをすることはモチベアップにめちゃくちゃ効果的です。今まで参加したものおよびこれから参加しようと思っているものを簡単にまとめました。

  • CODE THANKS FESTIVAL

去年の11月に開催されたオンサイトコンテストです。当時まだ水色と緑のはざまでしたが、500点の早解きに運よく成功し参加できました。
確かコンテスト直前のratedで緑落ちして当日どっちの色で自己紹介しようか唸っていた覚えがありますw

THANKSより奇跡的な通過だったのですが、就職をする年度ではない一般の枠での滑り込みでした。THANKSの時よりは界隈の知り合いが増えていたので、自分が普段twitterや順位表で見ている人たちが目の前にたくさんいてとても楽しかったです。コンテスト結果も自分のレートにしては悪くない成績だったので大満足でした。

  • ゆるふわコン

2月ごろに開催されたフォルシア株式会社さん主催のコンテストです。誰でも参加できるゆるっとふわっとしたコンテストでした。
知り合いもちょくちょく来てたので僕もゆるっとしたテンションで参加することができました。
フォルシアさん優良企業そうだなって思いました。笑

  • 競プロキャンプ

今年の5月にあるので参加しようと思ってます。とにかく同じ競プロerの方々と少しでも交流を持ちたいと思っているので楽しみにしてます!

  • プラサミ

こちらもこれから参加しようと思っています。やることは具体的に決まっておらず各自やりたいことを持ちいるみたいな話を聞いたので、何をやるか考えておこうと思います!

あと、競プロとは直接関係していないのですが、AtCoder Jobsで応募したフィックスターズ さんのインターンに申し込んでありがたいことに採用していただいたので5月半ばに開始する予定です。
今まで経験してこなかったソフトウェア高速化などをやらせてもらえる予定なので楽しみにしています。

これからどうする

順調にいけば夏までには青になれると思うのですが、現在のパフォのhighestが黄色に届いたことがないため、このままいくと確実に青で停滞します。
つまり今と同じような精進をしていてはダメということになります。
今までの精進は500点程度までの比較的考察時間が少なく実装にかける時間の割合が多い問題の数をこなしてきました。
しかし、今後取り組むことになる600-700点の問題になると考察が重くなるので問題を解くペースも落ちることが想定され、思うように精進が進まなくなる気がします。
どのタイミングでeditorialを見るか、という永遠の課題がありますが、初期はある程度高得点になれるためにも早めに見るべきなのかなーと今は考えています。
この辺の問題が時間をかけてでも解けるようになれば青の上位に推移することができると思うので努力していきたいと思います。
ただ、授業とか色々あって春休みほど精進ができないのがネックなので時間の創出は考えないといけないですね。

おわりに

最後まで読んでくださってありがとうございました。最近文字に起こすことをしていなかったのでその練習も含めて書いてみました。
TLにいる同朋の方々にはいつもいい刺激を受けているのでこれからも共に精進していきましょう!