ICPC2022アジア地区横浜大会参加記

ICPC2022のアジア地区予選にチームtriC(東京都立大学)で参加しました。結果はA,B,Gができて38位でした。

 

いろいろ書いたので雰囲気を感じてもらえたら嬉しいです。

 

icpc横浜大会順位

 

チーム構成

チームは都立大の競プロサークルの人で集まって参加しました。学年は学部4年,2年(私),1年でatcoderの色は国内予選の時は青茶灰、横浜大会の時は青緑茶でした。

 

以前は都立大も競プロがもう少し流行っていたそうですが、今は全然やってる人がおらず国内予選も自分達のチーム以外は都立大から参加するチームはありませんでした。

 

横浜大会追加招待



国内予選は自分はBを沼らせた以外何もできなかったのですがチーム4完と例年なら地区予選が確定的な結果だったものの選抜基準に基づいた順位だと43位で横浜大会大会の選抜40チームには惜しくも入れませんでした。しかし、11月の初めにメールが届き追加招待で参加できる事になりました。

 

横浜大会への準備

準備したことは問題を解くための準備と参加するための準備に分けて書きます。

 

問題を解くための準備

問題を解くための準備としては過去問を解くというのと持っていくライブラリを揃えるというのをやりました。

過去問を解く

過去問は英語の問題になれるために、AOJでICPCの過去問を自分で何問か解きました。最初は辞書を使ったりしたものの数回やると問題に関係する部分は同じような単語が出てくるし、入力例をちゃんとチェックするとだいたい理解できるので本番も含め辞書を使うことはほとんどありませんでした。

問題を解く際にはAOJのチャレンジで本番形式の練習を、ICPCの問題がまとまっているサイトで自分が解くだろうレベルの問題の練習をしました。本番形式の練習は1人だと全然やる気が起きず1回だけ、チームでも1回だけやりました。

AOJのチャレンジ

ICPCの問題がまとまっているサイト

 

ライブラリを揃える

ライブラリの整理は横浜大会では電子機器の使用、ネットワークの利用ができないものの紙の媒体ならいくらでも持ち込んでいいとのことなので用意しました。用意としては鉄則本を持っていき、また自分がいつも使っているライブラリをtexで整えて大学でプリントアウトしました。

本番ではVsCodeのコード補完とかも使えないのでしっかり持っていってよかったと思いました。

ライブラリの例

参加するための準備

参加するための準備としては、宿の確保とチーム紹介ドキュメント、チーム紹介スライドの用意をしました。

宿の確保

チーム全員会場まで1時間位だったので各々宿を取りました。宿泊費が7000円(交通費も合わせると1万円)大会の方から頂け、自分で宿を取ったことがないだけでなく旅行もほとんど行かないので有名なホテルにしようと決め、横浜スタジアム側の東横インに6000円位で泊りました。予約はヤフートラベルで予約し、領収書をpdfで出力しました。

チーム紹介ドキュメント

チーム紹介ドキュメントはリハーサルの日に印刷されたものが渡されました。

アスキーアートとか、短く数行のチームが多く、バチバチにチーム紹介をしているチームはあんまりなかったです。

最近流行りのChatGPLとの対話を載せてるチームも2つほどありました。QRコードを作ったチームがあったようですがQRコードの部分が文字化けで見れなかったのでちょっと残念でした。

 

チーム紹介スライド

スライドはこんな感じで他のメンバーが作ってくれました。かわいい絵がいっぱいのチームとかもありました。

チームの紹介も全然考えてなかったのですが4年の方がいい感じに話してくれました。

例年英語でのチーム紹介らしいですが、今年は日本のチームしかいなかったので日本語で良かったです。


 

大会1日目

会場の横浜産業貿易センターは、みなとみらい線の日大通り駅から5分くらいでした。

会場はほぼほぼスタッフの方も含め日本人だったものの、説明などは全部英語でびっくりしました。また、事前に寒いと言われていた割には会場が暖かく過ごしやすい温度でした。

会場では支給されたTシャツを着て、ネームプレートをつけて過ごしました。流石に半袖1枚ではとても過ごせないので長袖の上に着る形でしたが、いつもMサイズなのでMサイズを頼んでしまったので若干きつかったです。

 

リハーサルではPCの使い方を確認して問題をちょっと解きました。キーボードがUS配列なのと、ストロークの深いキーボードで私は全く対応できませんでした。VsCodeは使えるものの、ネットワークには繋げられないのでC++とかの拡張を入れられずコンパイルエラーをエディタが指摘してくれないのでとても苦労しました。

 

開会式は最初のオープニングムービーがすごくかっこよかったです。

 

www.youtube.com

 

予定より1時間くらい早く1日目の日程が終わり、その後は宿に行ってチェックインしました。

夜ご飯は明日に備えて松屋とかで済ませる予定だったのですが、顧問の先生がおすすめだというお店に行きました。

 

宿に戻りユニットバスの使い方を調べゆっくり温まりその後ぐっすり寝ました。

 

大会2日目

朝は予定通りの7時にしっかり起きれて東横インの朝ごはんを食べてからチェックアウトし会場に向かいました。東横インの朝ごはんはビュッフェ形式で食べれたのでとても良かったです。

コンテスト中の話

チームの方針としてはまず初めの簡単な2問を解き、その後他のチームが解けた問題をみて解けそうな問題を1問以上解くという感じでした。

問題へのリンク

コンテスト開始と同時にパソコンにログインし、全員でA問題を見ました。なんか貪欲っぽいけどすぐわからなかったので実装してもらい、自分はBに移行しました。

Bはインタラクティブ問題で、制約から各桁を2分探索すればできそうと割とすぐ分かり、AがACしてから自分が実装に取り掛かり提出したらWAが返ってきてびっくりしました。なかなかWAが取れなかったもののなんと"query a"と出力しなくてはいけないところを"a"としか出力してなかったのが原因でもったいないミスでした。

その後は周りの様子をみてD,F,G辺りが狙い目っぽかったのでDの実装をしてもらっている間にGを考えていると入り口と出口からの最短距離をメモしておいて繋がってないところをつなげて試すという方針でできそうと分かりました。Dが沼ってそうだったので、全員でGを考えて実装する事になったのですがぼちぼち実装が大変で自分がなれてない入力形式だったので実装はおまかせすることにしました。バグ取りと、入り口と出口からの距離が同じになる時(この時はループができて木じゃなくなる)を省くことで終了40分前にGがACできました。その後、考えてもらっていたDができそうということで実装してもらうも時間が足りず終了しました。

 

コンテスト中は印刷ができるのですが、最初は何に使うのかが分からなかったものの、紙で印刷することで複数人でデバッグができるので数回利用しました。

 

コンテスト中にマイセンのお弁当が配られたり、水が配られたり、お菓子が取り放題だったりと飲食には不自由しませんでした。

 

私はコンテスト中ずっとお腹が痛かったのでいっぱいトイレに行きました。

 

コンテスト後

コンテストが終わった後、協賛企業のブースが見学できたので行きました。不動産とか一見アルゴリズムとか関係のなさそうな企業でもアルゴリズムの使い道があるんだなと思いました。遊べるブースとかもあったもののあんまり時間がなかったので遊べませんでした。

見学時間の後は結果発表でテンポが良くあっという間でした。優勝は東工大のtonosamaで東大以外が優勝したのは13年ぶり(?)らしいです。

www.youtube.com

 

閉会式の後も企業ブースの見学の時間があったのですが、お腹が痛いので帰りました。

 

感想

オンサイトのコンテストは初めてだったものの雰囲気が新鮮で楽しかったのでICPCに参加してよかったなと思いました。また地区予選に出れるように頑張ろうと思います。