Mitsubachiのメモ

組合せ論をしています

JOI 2021/2022 春合宿 参加記兼爆死記

目標は15位/29人ぐらいのつもりで参加しました。 todo : なんか写真を貼る

 

Day 0

前泊組は競技1日前の17時ホテル集合なので9時ぐらいから観光をした。具体的には渋谷や明治神宮歌舞伎座や銀座を見て、下見としてNTT駒場と近くの大学入試センターと筑駒を見た。

ちなみに15分ぐらいホテルに遅刻した。申し訳ないです。

7時ぐらいに配布される弁当を食べて、ホテルの目の前にあるスーパーに買い出しにいった。お椀で食べるカップヌードルを初めて見たので買って、日が変わったころに食べた。(デブの元)

8時とか9時に科甲をしてきた十六夜さんが最寄り駅について、雨が強かったので道案内をした。パソコンを2台持ってきてるとのことだったのでお借りして仮想マシンでの挙動を確かめる。ありがとうございます。

 

 

Day 1

午前4時ぐらいに目が覚める。どうやらベッドの上でYouTube見てたら寝落ちしたらしい。ベッドに潜って寝なおして、7時ぐらいに起きたがもう少し行けると思って寝た。この時点でまずいのだが7時20分ぐらいに街宣車が通って目が覚めたのでそれに救われた。

適当に朝食のビュッフェを食べて8時のロビー集合に間に合わせた。

 

適当にdefineに「身長変わらないですね」とか煽られたり適当に人と交流したら競技会場に移動とのことだったので移動。ちなみに水とかお菓子を持っていけるが、持ちすぎると移動が大変なので注意しましょう。

 

9時10分に競技開始。封筒を開けて実装上の注意を見ると京都観光だけ問題名が面白いのでまず見る。シンプルな設定だが難しそう。

 

一通り見るとkyotoの小課題1が自明なので取る、9:33:45。jailの小課題1も思いついたので9:51:01に回収。mispellingの小課題1も大小関係決め打ちと思いついたが実装が重かった。10:24:41に回収。

 

考察をしていく。まずjailの小課題2が「一方のパスがもう片方を完全に包含している」が必要十分だと思ってDFSとかで回収するのを書いたがパスすらWAを吐いて辛い気持ちに。結局通せなかった。

並行してkyotoの小課題2とかを考えていたが思いつかず。

mispellingの小課題3も実験をしたが全然性質が見えてこない。

成果を出せないままドバドバ時間を浪費していく。前の席のyutoが提出したらお祈りをして通ったらぬいぐるみの犬を抱きしめてたりして面白かった。

 

結局mispellingは=は無視出来て、<とか>が重要で、よく考えると最後の出現位置だけが気になると気付いて小課題2を回収。なんとこの時点で14:00:05であり非常に沼をしていたことに気づく。

 

得点は 5 - 10 - 28 で43点。最下位を覚悟した。

昼食会場でjailの嘘を指摘され辛い気持ちになった。

 

解析&解説が始まる。この時に順位表が配られ。25位/29人であることを確認、厳しい。kyotoはあまりにも天才だと思った。jailの嘘にもっと早く気づいていたらもう少し点が取れていただろうなとなった。

 

ホテルに戻ってPCTと十六夜さんとカードゲームで遊ぶ。SETを布教したり大富豪をしたりした。食事を食べてダラダラしてCodeforcesに出て、日が変わるころに寝た。

 

 

Day 2

今日も相変わらず絶起

 

9時に競技開始。Communication Taskが出て少し嬉しい気持ちに。まあ結論としては最難関枠なんですけど。

 

一通り問題文に目を通してcopypaste3からやる。雑に小課題1と小課題2を9:33:34、9:55:57に回収。小課題3がパッと思いつかないのでチラ見して点が取れそうなteamに行く。

小課題1を適当に拾って(10:10:05)、残りの部分点も回収できると気付いたが、結構実装が重たかったので後回しに。

copypaste3の小課題3を考えているとX=(空文字列),Y=(Sのsubstring)の状態があることに気づいて、dp[i][j]で[i,j)をYに持っていくまでの時間というのを思いついてこれを書く。10:53:44に回収。高速化して小課題4もいけるかなと思ってロリハとか書いたけど無理だった。1時間ぐらい捨ててしまった。

 

諦めてteamに戻る。小課題3、小課題4はサクッと思いついたので11:57:58に回収。この時小課題4も解いていたが提出したときは小課題3までのつもりだったからちょっとビックリした。

小課題2を考察すると、座圧して2人決め打ちしてあげると二次元累積maxとかでうまくいくと気付いて12:21:13に回収。

 

少しflightsの考察をする。木の全辺情報を共有するのを投げてとりあえず12:56:25に7点。

 

ここらへんでteamの小課題5と小課題6あたりが小課題2と同じように解けることに気づいて13:13:11、13:33:51に回収。

 

最後の最後でflightsのいい解法が思いついたので急いで投げた。20秒前に出したので解析まで結果が分からなかった。(結論としては単純なミスで落ちていた)

 

20 - 7 - 73 で100点。厳しい。

 

昼に行く。defineとひらきちと駄弁る。defineの感じ的に100点は耐えてそうだなと思う。まあそんなことはない。flightsやばくないですかって聞いたらひらきちが「あれは激ヤバだよ」って言ってた。

 

解析/解説が始まる。上がってるかなと順位表を見たらむしろ2つ下がってて27位/29人。逆日本代表圏内でまずい。一応Day2内では24位なんですけどね...

kaageに「僕は今日でおさらばなんで後2日でhoge点取れば最下位は回避できますよ^ ^」って煽られる。生きててすいませんでした。

 

flightsの解説で「95点は人間的で、100点は非人間的な解法を使います」「これまでのJOIの問題のどれよりも難しいと思う」「難しすぎてWTFにも出せないと思う」とか言っててすごかった。解法を聞いたけど本当に難しいと思った。確かに人間枠ではない。

 

Day 3 以降

(放置してたので書くだけ書きます これいる?)

Day3 10-41-0 : 51

Day4 22-13-14 : 49

でした。

Day3: sprinker で遅延セグ木を頑張って書いて 41 点まで回収したが本解法は全然高度なデータ構造を使わなくてビックリ。遅延セグ木無限バグらせ編をした覚えが。

Day4: dango3 に関しては limit の倍まで回数を落とせていたが昼食の時間に limit 分簡単に落とせることを penguinman に教えてもらい解析中に実装したら通ってしまった...

 

合計 243/1200 で 26/29 位。悲しい。

表彰式で chokudai さんと写真を撮ったり JOIG の人と交流したりした。三田に住んでる友人が「三田は何もないド田舎」とか言ってたので三田出身の女子に「三田って田舎ですよね」と言ったらえ?みたいな反応をされた記憶がある。

表彰式の後は渋谷の EST で yuto, forested, rheo, penguin とビリヤードとダーツをした。ビリヤードが人生初だったので下手すぎて全員から一生笑われてた。