第20回日本情報オリンピックに参加しました。
結果から言うと、二次予選で184点しか取れず、本選に出場できませんでした。
記事を読む対象者
JOIで本選を目指す高校生以下の方
一次予選
日本情報オリンピックに関する説明は、いろんな記事でされているので省きます。一応日本情報オリンピックのホームページのリンクを貼っておきます。
リンク:https://www.ioi-jp.org/
日本情報オリンピックの一次予選は、配列や、ソート、文字列など、簡単なプログラミング術を知っていれば解くことができます。今年の一次予選の問題は、最も難しい問題でも難易度2であったため、簡単だったと言えます。事情によって、スマホ参加した回もありましたが、いずれの回でも20分以内で全完できました。
二次予選
ここからが今回の本題です。前回の第19回大会から、予選は一次予選と二次予選の2つに分かれました。前回のボーダーは、難易度5までは満点を取り、難易度7と9で部分点を取るというものでした。また、今年は自粛期間に精進をしていた人が多いと考えられたため、難易度7まで、ある程度埋めました。写真の付け方が分からないので、これもリンクだけ貼っておきます。どの問題を解いてるか等は、このリンクを見てください。
リンク:https://joi.goodbaton.com/?atcoder_id=cpcznksutbeoa
まだプログラミングを始めて7カ月も経ってなく、JOI対策を本格的にし始めたのが10月に入ってからというのも考えると、精進したほうかなーと思っています。この時は同期の精進量をそんなに見てませんでしたが、難易度8まで埋めている同期もいました。
当日
11:30に起床しました。軽くブランチをとり、コーラと音楽を用意して、準備万端!二次予選開始です。戦略としては、Cまでは確実に合わせ、D、Eで少しでも多く部分点を取るというものでした。前回そんな感じでしたからね。ただ、この戦略が後々仇になります。
競技開始
まず、Aを見ます。初問なので、愚直解を図りますが、制約が大きく、断念します。競技開始数分後、解法が2つ生えます。解法見たくない人もいるので、詳しい内容は書きません。どっちもあっているだろうと、実装が楽そうな方を実装しますが、サンプルが合いません。40分位試行錯誤したとき、この解法が嘘解法だということに気が付きます。急いでもう一つの解法を実装しますが、焦ってバグを生やし、ACには1時間ほどかかってしまいました。
Bを見ます。な に こ れ
Cを見ます。どうせDPだろうと、43点解法が思いつき、とりあえず実装しますが、ここでもバグらせてしまい、50分溶かして、Dに行きます。このあたりですでにパニック状態に陥っており、ここで8点を確実に取ることをしませんでした。実は、この8点を通していれば、二次予選通過していたのです。
Dは問題文が長かったので飛ばし、Eを見ます。あ、HonestOrUnkindじゃーん。7点を取ります。
Bに戻ってきて、BFSで解けることに気づき、74点を取ります。
ここで残り15分です。
Dを見ます。確実に3点を取り、あとの12分で、二分探索を実装します。10分かけて実装しますが、これにバグを埋め込んでいました。試行錯誤するも、バグは取れず、競技終了です。
結果は184点。予選落ちを確信します。ボーダーは、324点を予想していました。ただ、得点表に記入した結果、210点台まで受かるとの予測もありました。
結果
結果として、188点以上が本選出場権を得ました。得点表に、185点の方が二人いたので、二次予選落ち3位くらいということでしょうか。悔しい!
最後に
来年も二次予選が行われることが予測されますが、傾向はまったくつかめません。ボーダーが満点になるかもしれませんし、100点を下回るかもしれません。今回の僕のように、パニックにならなければ本選に出場できたということもあるので、落ち着いて問題を解きましょう!
日本語力のない文章を最後まで読んでくださり、ありがとうございました。