競技プログラミング好きの allegrogiken です。2022年が終わったので、主に参加したAtCoderのコンテストに絞って1年の振り返りをしてみようと思います。

2022年のデータ

AtCoderでは大きく分けて「Algorithm(アルゴ)」「Heuristic(ヒューリスティック)」の2種類のコンテストが開催されており、それぞれでレーティングの値やシステムが異なります。私はどちらの種目にも参加しているので、それぞれでまとめを記載します。

2種類の違いについては、過去に書いた「競技プログラミング(ヒューリスティック)の楽しさを伝えたい」をご参照ください。

Algorithm(アルゴ)

メトリクス
参加回数 71
レーティング変動 +66 (1231 → 1297)
最高パフォーマンス 1784
最低パフォーマンス 714

Heuristic(ヒューリスティック)

メトリクス
参加回数 9
レーティング変動 +491 (1197 → 1688)
最高パフォーマンス 2066
最低パフォーマンス 1162

2022年の良かったところ

安定してほぼ全てのコンテストにRatedに参加できているのは良かったと考えています。AtCoderには2019年から参加しており、気付けば「コンテスト参加数」でソートした時に100位以内に入っていました。この順位を維持すること自体が自分の中で大事になっており、モチベーションが切れずに継続できています。

また、本ブログでもいくつか競技プログラミングに関わる記事が出ているのですが、社内での布教活動が身を結び何人かの同僚を巻き混むことができました。同僚と一緒にコンテスト参加するのは純粋に楽しく、継続するモチベーションにも繋がっています。

アルゴ

課題を感じることもありますが、年単位ではレーティングが増加していたようなので一安心です。コンテストに貪欲参加しながら水色を維持できている時点で十分な成果と捉えております。

ヒューリスティック

正式なレーティングが動き出し、コンテスト回数も増えた・・ というのが2022年の環境的なハイライトです。レートやパフォーマンスもかなり伸びているので、結果については文句なしと感じています。

2023年はこうありたい

アルゴ

コンテストの参加回数に比例して解いた問題数は増えており、問題に対するパターン分類には強くなっています。反面、2022年では新たに解けるようになった問題の類は非常に少ない気がしています。(強いていうなら、期待値関連のDPが少し解けるようになった)

レート1400あたりの壁を越えられず、2021年以前に比べると鈍い増加となっているのはこの辺が原因かと思っています。これは2023年に改善すべき点かと考えています。

ヒューリスティック

ヒューリスティックでは長期コンテストにおける取り組みの我慢強さが課題でしょうか。初日にいい感じの提出ができると結構満足してしまって、2手3手と改善するまでの走り出しがとても遅くなってしまいます。加えて、統計などは完全に苦手分野で直近に開催された HTTF予選 では早々に手詰まりしてしまいました。
それ以外にも「手も足も出なかった」と感じる問題は多いですが、幸いにも上位陣の解法は解説記事はたくさん供給されています。1つの問題について模倣してみて、上位陣の考えを体感してみるところから初めてみようと思います。

なぜこのブログで競技プログラミングの話を発信しているのか?

※ 唐突に根本的な問いを自分にやってみました。これは単なるポエムなので、正しさなどは全く考慮していないことをご容赦ください。

クラウドでは色々と便利なサービスが提供される中、開発を行う単位は小さくなっていると感じています。AWS Lambda などサーバレスに近づくとその単位は「関数」まで小さくなります。そして「関数」を開発してデプロイするのは「競技プログラミングにおける提出」とほぼ同じであるように感じています。

AtCoder の提出結果には、ケースごとにかかった時間や消費したメモリの量がデータとして現れてくれます。何回も繰り返し問題を解いていると「このコードでこれだけの入力がきたらTLE/MLEだろうな」というのは感覚として身についてきます。これはクラウド・サーバレスな環境における関数の実装にとても有用なはずです。

以上で、クラウドを中心としたソフトウェア開発に競技プログラミングの素養が活かせることが証明できました。

まとめ

ここまで書きましたが、日常的に一定のテーマでプログラミングができる今の環境をとても感謝しています。ということを伝えたかったのでした。AtCoderに関わる皆様、2022年は大変お世話になりました。2023年もどうぞよろしくお願いいたします。

余談

2023年初めの「あーだこーだー(AtCoder公式のYoutube Live配信番組)」にて、AtCoderの言語アップデートのお知らせがありました。Twitter でも同様のお知らせが行われています

このアップデート活動は誰でも参加できるもので、専用のスプレッドシートに環境のセットアップ方法などを記載していくことで提案・貢献ができます。環境整備が得意な方がいたら、こちらにも参加してみてはいかがでしょうか?大量の環境セットアップ情報が並んでいるのを見るだけでも楽しいです。