ICPC 2022 Asia Yokohama Regional 参加記

2022/12/27,28 に開催された ICPC 2022 Asia Yokohama Regional に参加してきました。

Day1

1日目は開会式→リハーサル→チーム紹介の流れでした。

開会式

registraion を済ませてしばらくすると開会式が始まりました。やっぱりオンサイトだと盛り上がりが感じられていいですね。

つもいよろずさんのオープニング映像がめちゃかっこよかったです。

リハーサル

エディタやUS配列キーボードに慣れながら、練習用の問題 4 問を解きました。

エディタは導入が楽と聞いていた CLion を使いました(VSCodium とも迷いましたが、あっちは拡張機能が使えず不便らしい)。
実際補完やコード整形も問題なく使えたので、おすすめです。

CLion は使用する前に activate する必要がありますが、これは手順を記した紙が配布されるので、それに沿って行います。
さらに自分のチームは自動補完(Editor -> General -> Code Completion)や型、パラメータのヒント(Editor -> Inlay Hints) を切っていました。補完は Crtl+Space で出てくるので切っていいと思います。

コードの置き場所は、まず CLion で ICPC という名前のプロジェクトを作り、そこに A.cpp などのファイルを置く感じでやりました。team01/CLionProject/ICPC/A.cpp みたいな感じ。
また、コンパイルや実行は CLion を介して行わず、全てターミナルから行いました。ターミナルを使う際はコピペのショートカットを Ctrl+C, Ctrl+V に変更していました。ただしこれをやると Ctrl+C で実行を停止することができなくなります。

ICPC ではコードを印刷することができ、これを利用してPCを使わずデバッグすることができます。が、結果的に本番では使わなかった。
print.sh というシェルスクリプトが用意されており、ターミナルで $ print.sh (ファイル名) を実行すると、印刷されたコードをスタッフが届けてくれます。便利!


環境(物理)については、暖房が効いているので結構暖かかったです。ただ T シャツ 1 枚だと寒いので、T シャツの下に長袖を着ている人が多かったです。(Tシャツが見えないといけないので、上には着れない。羽織るのはいいらしい)

コンテスト中はおやつが大量に用意されているので、お腹が空くことはありません。

チーム紹介

ユニークなチームが多くて、すごい(すごい)
実在しないと思っていた人が実在していて驚きました。

終了後

のいみさん達と麻婆豆腐を食べに行きました。てかのいみさん2年前会った時と比べてチャラくなってた。草



Day2

前日は不眠が発動したため全然寝れませんでしたが、がんばって起きました。朝早いのはキツい。

本番

問題リンク(ミラーコンテスト):
onlinejudge.u-aizu.ac.jp



前半のペナルティを極力抑えたかったので、私がA、はにゅさんがB、ころも君が環境構築とC以降の和訳を担当しました。


Aは単純な実装問題で、早解きは得意なので素早く実装しました。構築問題なので丁寧にテストした後提出、そのまま AC(0:15) 。

次にはにゅさんがインタラクティブのBを実装。1ペナしたものの、程なくして AC(0:24) 。


その後他の問題の要約をころも君から聞きながら、解けそうな問題を探します。
が、ここからが苦しく、解けそうな問題が見つかりません。

順位表をずっと見ていたものの、上位陣もかなり苦戦しているらしく、しばらく全然動きがありませんでした。
D,F,G あたりが通されていたため、それらを考察しました。


しばらくしてはにゅさんが G を解けたそうなので実装をお願いしつつ、D,E,F を考察します。
この辺でモニターが映らなくなるトラブルがあり、コンテスト時間が3分伸びました。
その後はにゅさんのサンプルが合い、提出すると G が AC(2:33)。チーム戦の心強さを感じました。

D は考察した結果コインの移動と回転を数パターンだけ試せばよいとわかり、頑張って実装しました。
回転による座標変換が面倒でしたが、気合で実装すると AC(3:45) 。
回転は移動前の盤面を回転させましたが、終わった後で移動後のターゲットパターンを回転させると楽と聞いて目から鱗でした。


残りは E,F を考察しました。
E は O(N^2) の DP は簡単に思いつくものの、セグ木で高速化しようにもそのままでは更新範囲が区間にならないので唸っていました。
F は明らかに天才必要十分条件ゲーで、符号を適切に割り振ると総和が0になる +α なんだろうな~と思いつつも、具体的な条件はわかりませんでした。終わる直前には「ある程度符号の割り振り方が多いならYes」みたいな嘘を書いていました。


そしてそのままコンテストが終了……

問題解説

解けなかった問題の解説を聞いて天才か~?とか言っていました。
Fは案の定天才ゲーで、順位表マジックがなければここまで通されていないんじゃないかと思います。

順位発表、Yes/No

チーム CUPC は4完で43チーム中21位でした。できればもう1問通したかったですが、まあ悪くはない順位なので満足です。


上位チームの Yes/No はとても盛り上がりました。tonosama が一度 Time Manipulators に抜かれた後、I問題のYesで抜き返して優勝したのが熱かったです。

終了後

他のチームの選手たちやスポンサーの方々と交流しました。

その後は知り合いと遊んだのち、nok0 さん tatyam さん regi さんとご飯を食べました。

競プロの人たちと直接会って何かする機会は滅多にないので、新鮮な気持ちで楽しめました。

感想

初めてのオンサイトだったのでいい経験になりました。
強い方々と交流して刺激をもらったので、2023年はもっと Rated に出ようと思います。

はにゅさんが卒業してしまうため 2023 は出場するかどうかわかりませんが、出ることになったらまたよろしくお願いします。









-