はるすえすしーのぶろぐ

ブログのないようがないよう

ICPC2022 国内予選 参加記

チームTUTankhamunとして参加し、4完45位(298チーム中)でした

順位表

チーム

チーム名 "TUTankhamun" の由来 ・・・ 大学の略称TUTと、ツタンカーメン王を掛けている。スペルが覚えられないことで有名。

メンバーはecasdqina、MATSUMAT、hals。AtCoder黄水緑のチーム。

エカスドクィナくんのみ、高専時代にICPC出場経験あり。

学部SlackでICPCのチームメンバーを募集していたが、さすがに直に参加希望を言い出す勇気はなく空リプをしていたら拾っていただけたというのが参加の経緯。

~本番まで

ICPC出場経験があるらしい学部の助教さんにコーチを頼み、ABCに出たりAOJ解いたりして感覚を取り戻しつつ練習してICPCまでを過ごした。

6/25に模擬国内予選があった。出てみたら2完(A, C)でさすがにこれはまずいねという話になり、ICPC本番には「とりあえずA~Dまでは全部読んで(エカスドクィナくんが)問題の割り振りを決め、分からなかったら相談してチームワーク大切にしよう」という作戦?を立てた。

対面して相談した方がやりやすいので、本番はエカスドクィナくんの部屋に集まって迎えた。

余談だが、頭を働かせるためにラムネとかあるといいかなと思って全員分買って行ったらエカスドクィナくんも黄金糖を買っていてちょっと面白かった。松くんは空のミンティアを持っていた。

本番

開始1時間前は全然余裕だったのに、だんだんとコンテスト参加の高揚感と、一問も貢献できなかったらどうしようという緊張感で震えていたら、本番が始まった。

とりあえずABCを順に読んでいく。A問題はそのまま解けそうなので、僕より早く解けそうな松くんに担当してもらうことに。

BCを読む。B問題はシミュレーションっぽいが、実装がめんどそう&バグらせが怖いということでエカスドクィナくんが担当。

とりあえずC問題を自分の頭で考える。なんとなくDPみたいな感じがするけど、必要な状態が多すぎて爆発しそう。かといってすべての場合で最善となる並べ方も思いつかない。

するとエカスドクィナくんからC問題の考察(n≥mならずっと練習→ずっと休息、n<mなら休息するたび練習日挟む)が投げられるので、実装に取り掛かる。

A問題AC (13:56)

13:56に松くんが難なくA問題をACし、D問題以降の先読みとエカスドクィナくんの手伝い(紙上シミュレーション)に移る。

C問題のプログラムがいったん完成するも、サンプルケースが全然合わない。よく見るとn<mでも正の値が出るケースがあるのでエカスドクィナくんに報告。

すぐにそのケースでの状態を考えてくれる。どうやら休息日を等分割し、休息日の間に1日練習日を挟み、余った練習日を最後に連続させるのがよさそう && 休息日の分割数は2分割~n-1分割までループで見ていくとよさそう、と考察が投げられる。分割数が決まればその場合の値は定数時間で求まるっぽい。

B問題AC (59:22)

59:22にエカスドクィナくんがB問題をACする。またしてもサンプルケースが合わないので見てもらう。n≥m, n<mの場合分けが不要であることを指摘してもらい、さらに分割数に対する計算式にして表してくれる。

D問題AC (1:31:50)

1:31:50にエカスドクィナくんがD問題をACする。僕はC問題の実装で悩んでいて一切見てないのでわからないが、DPらしい。この時点で遅めの3完だったので、どうしても4完したい。

C問題AC (1:42:29)

ほとんどサンプルケースが合うようになったので、エカスドクィナくんも合流しておかしいサンプルケースのときのプログラムの計算値を一行ずつ確かめていく。ここで、1分割のときに悪さをしていることに気づき、for文の開始条件を変更したらサンプルケースが全部合うようになる。

データ1提出してCorrect Answer、データ2提出してCongratulation! 表示を見て思わず声が出る。1:42:29にC問題をACして4完に。この時点では33位とかだった気がする。

豊橋技科大から出ているチームが1チームしかないので、おそらく4完であれば国内予選通過できそうで一安心する(後から見ると、4完学内1位でも順位が10位下だったらかなり厳しそうだった)。

~終了

E問題に取り掛かる。グリッド構築っぽい。+と-を交互に並べて四隅を調整すればいけそう(らしい)ので、エカスドクィナくんが実装を開始するも、場合分けが多すぎるなどで断念。

G問題は構文解析が必要そうだが、そもそも構文解析が分からない上に構文解析をして何をすればいいのかが分からない。それ以降も何もわからない。

結局40分ほどは順位表を眺め、一方的に知っている競プロerのチームを応援したり、tonosamaの全完を応援したりして過ごした。ちょくちょく合計時間が少ないチームに順位が抜かれて、ちょっと不安になっていた。

国内予選を終えて

TUTankhamunは国内予選通過っぽい。やったー!12/27~28 Yokohama Regionalだ!(豊橋技科大としては2019年以来らしい)

僕のせいで予選通過ならずだったらどうしようと前日の夜は眠れなかったので、杞憂で良かったと本気で安堵した。

参加してみて、エカスドクィナくんの負担が大きすぎるので早急につよくなる(得意分野を作る)必要を感じた。3人目のマスコット枠ではないので。

終了後、お疲れ様会ということで来来亭に行った。勝ちの味がした。

ラーメン屋なのに機械があった。