JOI 2020/2021 二次予選 参加記
2020/12/13 (日) 13:00 ~ 16:00 に行われた JOI 2020/2021 二次予選に参加したので、明後日の英語の追試という現実から逃避するために世界一内容が薄い参加記を書きます。
前日
前日は HACK TO THE FUTURE 2021 決勝 に出ていたので、JOI 対策は特にしなかった。(ここ要る?)
当日
コンテスト開始前
確か 9 時くらいに起きた。
そのあとは適当に JOI の過去問を見て、いくつか通したり昼食を食べたりしたら開始時刻になった。
IOIOI カード占い (IOIOI Cards)
— Series_205@精進 (@Series_204) 2020年12月13日
差分をとると二点flipになるので、ダイクストラで頑張るhttps://t.co/6Km8rSWVbi
小籠包 (Xiao Long Bao) 難易度 10
— Series_205@精進 (@Series_204) 2020年12月13日
D が小さいので、直前 D 個だけ気合で持って DPhttps://t.co/RYSY9ueEsw
最終問は難易度11と予想しています。当たるかな?
— 205 (@205_series) 2020年12月13日
コンテスト中
13:00 A 問題を読んだ。普通に解法がわかったので書いて提出し、AC だった。
13:07 B 問題を読んだ。よくある全部前計算する系のやつだな~と思って std::unordered_map
を使って実装した。
手元で動かしたら意外と遅かったのでコードテストに張り付けて再度実行、普通に TLE だった。
文字列を 3 進数に直して提出したら 623 ms で AC が取れた。高速化は大事。
13:25 C 問題を読んだ。町がたくさんあるのかと思って「難しそ~」とか言っていたが、よく読んだら 2 つしかなかった。
13:54 やっと実装が終わったので提出したら RE が出た。 ちょっとコードを眺めてもどこが壊れているのかわからなかったので、ランダムチェッカーを書いたら、配列外参照と無限ループが起きていて泣いた。
14:10 頃 このまま C が通らないとやばいと思い、D 問題を読んだ。楽勝そうだったので C を通してからやることにした。
14:24 C を通せたので、D をもう一度読んで実装をした。二分探索の判定部分が意外と難しく感じた。
14:41 D を提出して、WA だった。よく考えたら二分探索の初期値に不備があったので直し、14:46 に AC した。
14:46 やっと最後の E 問題にたどり着いた。遅いな~と思ったが、別に JOI は早解きと関係ないので救われた。 タブレットをつまみながら考えていたら、「どっちでも良さげな人はスパイじゃない方がいいのでは」という核心に気づいた。ありがとうタブレット。
15:37 E を通して全完した。やったぜ
残りの時間は解法ツイートを書いたりおやつを食べたりした。
コンテスト後
解法ツイートをして、得点表に結果を記入、難易度表に投票した。
JOI 二次予選
— 205 (@205_series) 2020年12月13日
2時間37分全完 (遅い...)
A set
B N 文字の文字列すべてに対する答えを前計算 C 二分探索しながら DP (尺取りでも行けそう) 普通にバグらせて一時間溶けた
D 二分探索 初期値は十分大きく (戒め)
E 適当に書いて投げたら通った 未証明でごめんなさい
あとはだらだらしながら解説放送を聞いていた。意外な人が解説で出てきてびっくりするなどした。
まとめ・反省
やはり自分は実装が弱いなと思わされたコンテストだった。特に C 問題はデバッグに 30 分、合計では 1 時間もかけてしまった。実装ってどうやったら強くなるの?(精進を、しなさい)
また、今年は去年と違って小課題がたくさんあったが、全く小課題のことを考えていなかった。本選では部分点をどの段階で取りに行くかとか考えないとな~
まあ、数字ではこれ以上ない結果なので、満足。