東京工業大学プログラミングコンテスト2022 参加記

11/5 (土) に、東京工業大学プログラミングコンテスト2022(TTPC2022)が開催された。 私にとっては初のオンサイトコンテストだったので、感想を書き留めておく。

コンテストページ:

atcoder.jp

開会まで

開場の 30 分前くらいに御茶ノ水駅に着いた。土地勘がありすぎて逆に不安になる。適当に散歩してから会場入りし、名札を受け取る。

えびちゃんには最初に会いに行こうと決めていたので、軽く挨拶をする。えびちゃんかわいいのチャンカワイの部分。*1

沙耶花ちゃんと話していると、ポッキーをむしゃむしゃ食べながら近づいてくるふっぴーさんがいた。

「お二人とも、どうしてそんなになぞなぞが強いんですか?」と質問したが、「こちらが聞きたいです」と返されてしまい、有益な情報は得られなかった。

ともかく、本当にうまそうにポッキーを頬張っていたのが印象に残っている。

はちじさんやのこさんなど、東大勢とも交流をする。

コンテスト開始間際に kichi さんが誘ってくださり、チームを組むことに成功。

コンテスト中

序盤は kichi さんが A~C、私が D, E を見ることにした。D は苦手っぽいので後回しにし、E を解く。

A は難なく AC。

B, C もデバッグを少し手伝い、AC。C は寄与に分解し、いつもの中央値テク(中央値が  x 以上  \Leftrightarrow x 以上の数が  3 個以上)を用いる。中央値がちょうど  x になる場合の数を求めるには、 x 以上の場合から  x + 1 以上の場合を引けば良い。 A, B, C, D, E のうちどれが  x 以上になるかを bit 全探索する。微妙に TLE したが、kichi さんが高速化をしてくれた。

E は各テストケースあたり  O(1) 時間で解かないといけないと思い込んで詰まっていたが、kichi さんに投げたところ「amortized  \sum |S_i| になるので今のままでいいのでは」と言われて AC。結局、正解コードを前にして 10 分くらい頭を抱えていたことになる。愚かすぎる。

D はチームメイトがいつの間にか通していた。簡単な木 DP で解けるらしい。

残りの時間で F, L, M を考え続けるが、わからず……。3 時間くらい椅子を温めることになった。気まずくならないよう kichi さんが間を持たせてくれて、ありがたかった。

最後に G の部分点を取りに行こうという話になったが、バグったままコンテストが終了。

終了後

終了直後にえびちゃんが話しかけてくれて嬉しかった。そのあとは zkou さんと問題の感想を話していた。

解説会があった。裏話が中心で面白い。すくさんが Twitter のイメージ通りだった。

torisasami さん、かっつさんに挨拶をした。2019 年の 3 月 10 日、ちょうど WUPC の日に torisasami さんの東大合格ツイートを見た記憶があるので、感慨深い。

最後に noshi さんに会いに行った。「文字列アルゴリズムなどをやっている人として認識しています」と言われ、研究モチベが上昇した(競プロモチベを上げるオンサイトだったはずなのに……)。