見出し画像

競プロ初心者がJOI'23本選を目指して

みなさんこんにちは。
先日JOI'23本選が行われました。振り返りとして参加体験記を書いてみようと思います。

本選競技は全くできなかったので、競技中の時間の使い方とかは強い人の体験記を見てほしいです。


1.目標

自分の目標は「本選進出」です。

高2になって競技科学に興味が出てきて、やるんだったら本選まで行かなきゃいけないでしょ!って感じです。

競プロ自体はほんの少しだけ触れていました。
下の写真が自分のAtCoderのレーティンググラフです。

AtCoderのグラフ(2023/2/13現在)

高1の夏に始めて1回萎えた後、高2の10月あたりからJOI本選進出を目指してちょくちょくコンテストに出るって感じでした。

2.2次予選まで

2次予選時の実力はまだまだ灰色で、問題文を愚直にコーディングするくらいしかできませんでした。なので、予選を突破するにはアルゴリズムの勉強をすることが必要でした。

ですが、2次予選がちょうど学校の定期テスト後で最低限の時間で対策するしなければなりませんでした。
そこで頑張ったのが

「直近の2次予選にでたアルゴリズムは学ぼう!」

です。

そこで、最低限のグラフ理論の知識を勉強して、BFSくらいは自分で実装できるくらいにはなりました。

当日の作戦はABで200点あととれるところをとる作戦です。

前日の友達との会話

3.2次予選

時系列順にまとめていきます。

13:02
A問題:それぞれの値とMaxとMinの差のAbsを求めてMax→AC

13:39
B問題:二分探索で入る場所を探して、あり得る通りを全探索→AC

14:36
C問題:BFSを書いたけどWA→問題文の誤読に気づく→萎える

15:37
C問題:愚直に2連BFSを実装→小課題2の32点ゲット

15:42
D問題:小課題1の6点分を回収

合計点236点でしたね。

その後、得点表をみたり、強者のボーダー予想が260点前後であることを知って、本選逃した~って悲しみました…

でもでも、金曜日に本選ボーダーが207点と発表されて、本選確定したときはめちゃくちゃうれしかったです!!

予選Aランクだぁ~!

結果論ですが、C問題で小課題2が取れて本当に助かったなって感じです!この32点がなかったら落ちてました…

4.本選まで

自分の目標が本選出場だったので、とりあえず目標達成だったのですが、せっかくだから本選でもある程度の点数をとりたいと思いました。
課題は
①C++の1からの勉強
②アルゴリズムのさらなる勉強
です。

①C++の1からの勉強
これはAtCoderの「APG4b」を使って勉強しました。

そしてABS(AtCoder Beginners Selection)の問題を全部C++で解きました。

②アルゴリズムのさらなる勉強
これは「鉄則本」を買って勉強しました。

鉄則本

さすがに全部を解くことはできなかったので累積和、二分探索、DPをしっかりやって後はさらっとやりました。

余談ですが本選開会式の動画を友達と撮って傑作ができた!と思ったけど2人以上写っちゃいけないルールを忘れてて使えませんでした…

Bit Shift!

5.本選

開会式
タコ焼きロシアンルーレットが面白かったです

交流会
E8さんの面積最大化ゲームすごい楽しかったです!
自分たちは初期解を適当に選んだだけで終わっちゃいましたが、なんかヒューリスティック系の面白さを感じた気がします!
初期解の選定も深いし、精度を上げてくアルゴリズムも奥深い…
ちょっとヒューリスティックに興味がわきました!

競技
問題1の小課題1をとって燃え尽きました…
問題5の自明点3点をとって合計28点でした。
やっぱりC++もむずいし、アルゴリズムも難しかったです。

うーん…

6.感想

やっぱりJOI楽しかったです!!

競プロをしっかり勉強するきっかけにもなったし、C++のような触れたことがなかったような世界に触れることができました!

まだ自分は茶色コーダーですが、これをきっかけにもっと精進していきます!!

JOIありがとう!!


読んでいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?