JOIG 2021/2022 春合宿 参加記

はじめに

mendako(@mdkcpp1015, mdk_51) というIDで競プロをやっていたことがある者です。

まず、Twitter 急に消してすみませんでした。
色々考えるところがあってだったのですが、何も言わずに消したのは良くなかったと思っています...

JOIG春合宿に参加したので、参加記を残しておこうと思います。
予選・本選・春合宿 という形式になったのは今年からですので、来年以降参加する人の参考になったら幸いです。

まあコロナのこともありますし来年度以降どうなるかわかりませんが、一応。


JOIG本選は515点で、Twitter の情報を見ていると4位だったようでした。 ほぼ1年 C++ を触っていなかったので自信はあまりなかったのですが、JOI関連イベントに選手として参加できる最後の機会なので行くことにしました。

ではここからつらつらと各日程で思ったことを書いていきますが、何しろこういうブログ的なものを書いた経験がないもので、読みにくいところがあったらすみません。
特に競技中のムーブのところはかなりぐだぐだしています、適当に読み飛ばしてください...(解法ネタバレも若干含んでいます)

Day0

有機化学のテストだった。暗記量エグかった。(芳香族~高分子 全部)
このテストのせいもあって、結局マジの無精進に。

Day1

堺雅人が塾講師やってる夢を見て起きた。おもろかった。古美門研介~

良いね~
【心を込めて】 メリュー 歌ってみた ver めいちゃん - YouTube

8時丁度ぐらいについた。

午前中はPCの操作確認含めたプラクティス。
Communication や OutputOnly が出たので伏線かと思うなど。 やはり伏線。

その後はマラソンコンテストに参加しよう、みたいな講義だった。
squareさんのプレゼン懐かしかった。流石。私も学んで良いプレゼンできるようになりたい。

結構気さくに話しかけてくれる人がいて、早くなじむことができた。

Day2

競技、ついに本番前半。
本選では4位が取れていたので、問題セットが合っていれば見込みはあると思っていた。
ただ、あまりに競プロに触れていなかった時間が長いのでデバッグ力などはだいぶ落ちていたため、悪いセットだと普通にひどい点数を取るだろうと思っていた。ギャンブル。

競技でのムーブ(長いので折りたたんでいます) 1問目を見る。 前処理してから適当な優先順位でソートして上から1, 2番目のものを取っていくんだろうな、みたいな方針は立ったが、どうも具体的にならない。
4問目まで目を通すが、4は明らかに難易度10周辺の見た目をしているし2, 3も今一つ方針が立たない感じで、絶望。
とりあえず小課題1を通してまわった。

1問目は満点を取らないと差が後で埋まらなくなるだろうと思い実験などをして色々試してみたが、どうもうまくいかない。4人くらいはきっと満点を取っていそうなので、かなりまずい。
小課題3まで通して、次の問題を見てみる。

2問目、小課題の付き方が誘導感すごい。
それぞれ左右隣だけ確認すれば良いことは察しが付く。
OIG固定版をまず通したら同じ書き方でIG固定、G固定すれば良さそう、と思ったが...
悲しいことにOIG固定版が通らない。悲しい。
結局最後までバグが取れなかった。

3問目、いわゆる Ad-Hoc だろうなというのが第一印象。
正直どこから手を付けて良いかわからなかった。多分簡単に実装できる驚く感じの満点解法があるんだろうとは思ったけど。
最終的には小課題3(A, B, C は全ての値が5以下)を、Aの値・Bの値・Cの値で全探索して作れるかを確認していくという方針で通した。

4問目、明らかに満点取れそうにない見た目をしている。CopyPaste3 なんて名前だけど CutPaste じゃないか。誤読しそうになった。
文字が全部 a の小課題で18点も貰えることに最初は喜んだけど、これもまたいくつかのケースで落ちた。泣きそう

少々甘く見ていた節があった。

昼食は幕の内弁当、贅沢~
JOIの方と同じタイミングだったので人がたくさんいた。

午後は解析・解説。
1日目終了時点の結果、7位。5, 6位かと思ってたのでショック。
4位との差が60点ほど。

2問目は方針は合っていたので悔しかった。
3問目、解説聞いてて感動した。かなり面白い問題で好きではあるけど、競技で出てくるとまあ苦手なタイプだった...
4問目、明らかに難しい。
JOI春合宿と同じ問題だったと聞いたときは本当にびっくりした。

正直、本選の雰囲気から見てもっと簡単めな問題が出るんじゃないかと勝手に思ってしまっていた。まさかJOI春と同じ問題を出してくるとは…
2回目の競技で合った問題セットが出れば見込みがあるが、そうでもなければ代表は無理という厳しい状態になってしまった。このまま塾かよと呆然。

きたむーさんを見て夏季セミ懐かしいなと思うなど。簡潔データ構造、大学入ったらまたちょっと読んでみようかな。

JOIの人とちょっと話せた。
JOIGの方では結構仲良くなれ始めていた。LINEグループできたり。皆さんコミュ力高い~

夜、塾の数学の最終回。演習だった。高2数学皆勤!
中2からずっと同じクラスだったし、先生も本当に良かった。

ただ、流石に疲労閾値を越えたらしく、時刻感覚が消滅。ちゃんと帰宅できて良かった。マジで。

Day3

朝、前日の疲れが取れていない上悪天候
その上次の日に結果が確定するとわかりながらも、もはや対策しようがない。つらみ

午前中は競技の問題の解き直しだった。
わからないことやとれないバグがあった時にすぐに質問できる環境は普段周りに強い競プロerがなかなかいない人からしたら非常に貴重で、すごく良いなと思った。

昼食、今半の牛丼弁当。これまた高級な…
雪だかみぞれだか降ってた、隣の公園で桜咲いてたのに嘘でしょ…の気持ちに。

午後はマルコフアルゴリズムコンテスト。いつぞやの春合宿でやってたんじゃなかったかと思ったらやはりそうだったらしい。
bf のノリを感じて面白かったけど、今一つコツがつかめず微妙な結果だった。まあ楽しかったので良し!
マルコフニコフ則~(無関係)

夜は結構早めに寝た。

Day4

疲れはかなり取れていたので良かった。やっぱり睡眠大事。

一年のブランクがありはするが最早どうしようもないので、あとは問題を解くだけだと思い、正方向の思考しかしないようにした。

朝交流をする余裕はちょっとなく、廊下をぶらついてた。

競技... (こればかりは多分誰の参考にもならないのだけど)

1問目を見て1時間ほど考え満点解を実装できる見込みがないと思った時点で、代表はかなり厳しいことを実感した。
60点以上リードしないと勝てない中、ボーダー争いをしている人全員が1問目を落とすはずもなく、2問目以降も満点どころか小課題1すら怪しかった。
2問目も例のごとくbit全探索の小課題すらバグらせた。
4問目、UFをとりあえず書こうかと思ったもののその先何もわからず。
最小全域木クラスカル法は好きなジャンルの一つだった、懐かしい。
完全に忘れていたが。
最後まで一応何とか点を取ろうとはしていた。確か終了まで残り20分切った辺りで1問目の小課題のバグが取れた。

7位フィニッシュ。

結局JOIとの共通問題は2競技合わせて Team, CopyPaste3, Dango3, Reconstruction という感じだった。

昼食はパンだった。

順位表見たが、1位の人が強すぎて唖然。プロ。

表彰式後は結構交流ができた。1年以上競プロerとたくさん話す機会がなかったので、話せて良かった。
気持ちも結構マシになれた。
帰宅。

いつもの
【ウォルピス社】夜明けと蛍を歌ってみました【提供】/ Wolpis Kater - YouTube

ウミユリ海底譚 歌ってみた【Eve】 - YouTube

アサガオの散る頃に (Asagaono cirukoroni) - COVER by くろくも☁︎ (kurokumo) - YouTube

全体的に

まずはチューターの方々、コロナ禍で例年のようにいかない上パラレル開催という大変な状況で、競技環境の整備から講義の準備、質問の対応などをして頂いて、本当にありがとうございました。
充実していて快適な合宿でした。

競技として、まあこういった結果ではありましたが、この一年の過ごし方的に仕方ないとは思いますし満足です。

供養…

応援して下さったことのあった方々には期待に応えられなかったことに申し訳なさがあります...

来年以降参加する人達に向けて

JOIGの参加者には普段周りに競プロをやっている人や相談できる人がいない、という人が多いと思うのですが、春合宿に来ると競プロを頑張っている同世代の人やすごく強い人に会って話すことができます。
本当に良い機会なので、参加することをモチベに頑張ってください。
AtCoder緑ぐらいになれば行けると思います。(今年と難易度が大幅に変わらなけば)

雑多なことを書いておきます。

  • エディタは VSCodium がおすすめです。拡張機能を有効にするのを忘れないようにしましょう
  • 問題用紙はバラけるので互い違いに置くなり折るなりしてまとめておくと便利です
  • ゼリー系は簡単に飲める上甘いのでおすすめです
    甘めの飲み物(午後ティーなど)も良いです
  • 「おまじない」(#include <bits/~ みたいなやつ)は日頃から何も見ずに書けるようになっていると安心です
    コンパイルコマンドも調べておくと良いです
  • 自キーボードはあると快適だと思います
    マウスは元からついています
  • 春合宿に通ったら VirtualBox の使い方を軽くでも調べておくと、仮想マシンが配られた時にすぐに使い始められるので良いと思います

あと、これはもはや参加記に含めてよいのかわからないのですが...

自分が競プロをやってきた上で思うこと

~緑ぐらいの人へ、コードの書き方にある程度慣れたら、早めに解く問題の難易度を上げていった方が良いです。灰diffが安定して解けるようになったからABCのAを取り敢えずたくさん埋めよう、みたいなやり方をすると停滞に陥りがちです。
JOIの難易度4や5は良い問題が多いです。しばらく考えてわからなかったら解説記事を見て類似問題を解いてみる、というのが良いかと思います。

また、レートが伸び悩んでもあまり落ち込まないようにしましょう。
上を見たらいくらでもすごい人がいてきりがないですが、「趣味」の位置付けで楽しむためにやっているのにそれが原因でメンタルを崩してしまうのでは趣味の意味がありません。
レートは飽くまで一つの評価基準です、停滞したからと言ってあまり暗くならないで気楽にやりましょう。
CTFなど情報学の他の分野に手を出して息抜きしながら気長に、ぐらいの感じで。

この辺はまた思い出したことがあれば追記するかもしれません。


気が付いたらかなり長文になってしまっていましたが、最後まで読んで頂きありがとうございました。
ではこんなところで。
受験勉強頑張ってきます。