ICPC 2025 Yokohama 国内予選 (Asia Japan National On-Line First Round Contest) 参加記 (Aobayama_Marines, E49869826視点)

ICPC2025 国内予選に参加したので参加記です。

チームメンバー

suo

このチームのエース。ラストイヤー。考察の能力が他ツームと比べてありとくにゲーム系の問題が得意。普段使用している言語はPythonだが去年のRegional Contestでの反省をもとにC++も使えるようになった。AtCoder二段。

E49869826

私。ラストイヤーでない。他2人の得意分野の関係で数学や幾何の担当ということになっている気がする。普段はNimを使っているがICPCCodeforcesでは非対応なので去年C++を学んだ。AtCoder1 級。

tanaka2_55

医学部医学科。いわゆる天才と呼ばれるものでない考察ができる。C++がメイン言語の唯一の選手で他2人と比べてC++での実装がすばやくできる。AtCoder1 級。

karinohito

コーチ。去年までは選手でコーチをするのは今年が初めて。今までに解いたことのある問題の数がとても多い。AtCoder三段。

 

ちなみにこの普段使用している言語の組み合わせは2025の国内予選優勝チームと同じらしい。

チーム結成

去年と同じメンバーで出ることになった。チーム名も同じ。去年は横浜まで進みそこで敗退。チームレートでは登録されている中で9位と上位に位置していた。

国内予選までの準備

学内の強い人がだいぶ引退し私のチームが学内の一番手になったので通過には余裕がありそうだったが、本番で大ゴケする例や格下と思っていた相手やノーマークの相手に倒される例 があることを知っていたので4/27から国内予選に向けた3hのチーム練習を週1で行った。途中で国内予選や模擬国内のチーム練習のセットが尽きたので韓国の国内予選のセットも利用した。練習では15-30位相当を取り大ゴケを経験することもなく通過は安定していそうではあった。

模擬国内

tanaka2_55が用事を被らせてしまいsuoとE49869826の二人で出ることになった。ABCDEの5完で31位、二人でも国内予選通過相当を取ることができた。E問題では個人的に行っていた演習(リンク先E問題のネタバレ注意)の成果を実感できて良かった。

コンテスト後にはDispersionさんによるHの解説を聞きこういう考察をRegionalあたりにはできるようにしなければいけないだろうなと考えていた。学内ライバルチームのAobayama_BlueMountainはEで気づきにくいミスをしてしまっていたらしいことを聞いた。( 実行結果とともに終了コードが文字として報告されるCLionを使うと良さそう。 )

国内予選

直前に競技中に提出以外の用途として使用してよい言語に制限はないとアナウンスされ競技中にNimを使うチャンスが発生したが作った環境が壊れるのをおそれてNimを使えるようにはしなかった。私のチームは開始時間に余裕をもって集合することに成功したので同じ大学の選手と話しながらコンテスト開始を待っていた。ウォーミングアップとしてtanaka2_55が適当な問題を解こうとしていたが詰まらせ途中でやめており少し不安になった。個人的な目標は学内のライバルチーム+学内のどこか1チームに抜かれて3位になったとしても通過ができる25位。

戦法としてはAがE49869826、Bがtanaka2_55、Cがsuoで以降は問題を見てできそうな部分をこなしていく方式を取っている。D以降の考察部分は誰かに話してから実装に移る。実装部分については1人で行い2人を以後の問題の考察に回す場合もあるといった感じ。

以下青字部分まで問題ネタバレ注意

まずAを見る。今年のAはあまりにも簡単で見た瞬間解法が分かったのですぐに実装に移った。問題を印刷した紙が届くまでは3人でパソコンを見ていた。提出ができた頃にはそれぞれBとCが解けそうという感じらしかったのでDに移る。Bの提出まで終わりCの実装が終わる頃にはある程度考察と実装を詰めることができた。提出したCがペナとして帰ってきたらしいのでtanaka2_55をCに回して私は引き続きDを詰めることに。この時間で最初認識していなかったケースに気づくことができた。CをACした頃にはすっかりDが固まっていたので考察と実装をtanak2_55に話してDを実装。実装している途中で順位がどんどん下がっていき85位あたりまで下がり続けたので緊張感を持ちつつ実装していた。DをACしたときにはEFが解けそうで実装が軽いがACが怪しいEと実装が軽くなくACが確実なFという状況だったので誤読や思い込み防止の意味も込めて他選手のEの実装と並列してとりあえずEを読むことに。しかし読み終わって実装中の内容を聞いているうちにEのACが確認されてしまった。Fは確実らしいので実装をsuoにお願いしてGHをtanaka2_55と読むことに。Gがtanaka2_55が苦手そうな見た目、Hが私が苦手そうな見た目だったので私がG、tanaka2_55がHを考えることにした。FのACを確認できたのでsuoさんにはGHを読んでもらいHの考察に移ってもらった。しばらくするとHの考察が浮かんできたらしいのでHの実装をお願いしtanaka2_55には少しGも考えてもらうことに。ここで貰ったヒントをもとに自分もGのエスパー解法を作ることができたが正当性を示せる気がしないので引き続きHの実装をやってもらう。途中でペナも挟みつつHをACまで持っていくことができていてGの他の考察も浮かばなかったのでAC数を根拠にとりあえずGのエスパー解法を実装してみる。この辺りで通過を確信して(学内トップ3が17位-32位-72位)だいぶ気楽な気持ちでチームが回っていた。Gの実装が終わって提出したらACした。まだ時間が残っていたのでIを考えることに。考察の1ステップ分は生えたがそこから進まずに実装が間に合うタイムリミットを過ぎてしまったのでIを考えつつも振り返りと順位表観戦に移っていった。このムードがtanabata_Aobayamaに伝わってしまっていたらしく後でそのことを言われた、tanabata_Aobayamaは最後まで真剣に取り組んでいたと思うので申し訳ない。コンテストが終了。

ネタバレ部分終了

結果

 

puzzleknot所属チームの順位の遷移

 

結果としては学内ライバルに勝ち目標も達成できた全体15位/学内1位。
昨年度Regionalの前に投稿された物理好きさんのICPC Yokohama 国内予選top15紹介のチームを見て格好いいなと憧れの対象になっていたのでここで紹介されてもおかしくない順位を取れたのはかなり嬉しい。今年もやってほしい。

国内予選企業賞は貰えなさそうなのは残念だがこれは狙えるものではないので仕方ない。

今後について

まずは国内予選を通過することができてよかった。チームの目標はPlayOff以降進出で国内予選通過で満足するチームではないので以降も演習を積んでいきたい。とくにUniversal Cup参加については成長につながると聞いているので意欲がある。

私はとりあえずUSキーボードに慣れるところとABC以外で戦う方法を知るところからはじめようと思います。