ICPC 2020 Asia Yokohama Regional Contest 参加記
-
前書き
ICPC 2020 Asia Yokohama Regional Contest にチーム「Heno World」で参加しました。チームメンバーは
heno239
yamunaku
moririn2528
です。
ICPCの大会には3年目の出場で、yamunaku君とは3年連続同じチーム、moririn君とは今回が初めてのチームです。チーム作成時点で、学内でもtop3に近いメンバーでチームを組めたと感じており、意気揚々と今回の大会に臨みました。
-
コンテスト前
-
チーム紹介ドキュメント
チーム紹介ドキュメントを期限の日ちょうどに送りました。
チーム紹介ドキュメントの説明には、60行75列のグリッドを出力するとACできると書いてあったので、ACを60*75/2-4個とWAを4個書いて提出しました。
そういえば、ICPCアジア横浜大会のHeno Worldのチーム紹介ドキュメントには実はWAが4つ隠れているので、暇な人は探してみてください
— heno (@heno_code) 2021年3月9日
WAが紛れているのにもかかわらず受理されたので、テストケースがあまり強くないと思います。
-
顔写真
顔写真を期限の日ちょうどに送りました。ICPCらしく腕組みをした写真を送りました。(WFの参加チームがよくチーム紹介映像で腕組みをしています。)
提出していない人がいらすとやになっていて面白かったです。
-
お菓子
コンテスト前のある日、ICPCからICPC BOX(と勝手に呼んでいる)が送られてきました。中にはコンテストの概要が書かれた冊子やICPC Tシャツ、スポンサーのあれこれと、さらにお菓子袋が入っていました。
せっかくだしお菓子はICPC当日に食べようと思って全部残していたんですが、中身の影響を受けて同じものをコンビニで買って食べたりしていたので、そんなに意味のある決意ではなかったのかもしれません。
-
コンテスト当日の朝
コンテストの開始時間は、9時でした。9時は9時でも朝の9時ってなーんだ?→午前9時です。普段夜9時にAtCoderのコンテストに出ている身としては、感覚が大きくずれるので調整が難しかったです。
前日からの作戦として「夜23時に寝て朝7時に起きればまあ普通にいいんじゃないか作戦」を掲げていたのですが、やはり大会前の緊張もあり、(夜は23時に眠れたものの)朝は5時に起きてしまいました。
起床したあと、悲劇が僕を待っていました。
コドフォの問題でも解くかと思ったらメンテナンス中だった
— heno (@heno_code) 2021年3月16日
仕方がないのでAOJ-ICPCの問題を解いていました。
その後、チームメイトが無事起きていることも確認でき、安心してコンテストに臨みました。
-
コンテスト中
序盤の作戦として、A問題とB問題をチームメイトの2人に任せて、henoは数え上げに特攻するという作戦をとりました。作戦の意図として、数え上げの早解きにはそれなりに自信があるので、
「難しめの数え上げを早めに解ければそれを見た他のチームが(早めに解かれてるし簡単そう)と思って挑み、時間を浪費してくれないかな」
という意図がありました。実際どれくらい意図が通じたのかは分かっていないです。
そんなこんなでA,B,I(FA)が通りました。この時点で順位表がG,H,Jが通っていたので、3人でそれぞれの問題に挑みました。自分はH問題にいき、少しだけ悩みましたが、無事に通すことができました。
自分がH問題で少し悩んでいる間にチームメイトがG,Jを通してくれていたので、Cに1人、Eに2人いきました。Eを僕とmoririn君で読んでいたんですが、moririn君から解法のアイデアを貰ったので、自分がそれを実装することにして、moririn君にK問題を任せる形になりました。
Eの誤差で苦しんでいる間にCとKが通っており、さらにEもyamunaku君の手助けをもらって通りました。すごくチームメイトが心強かったです。残すはD問題とF問題で、D問題はかなり難しそうに見えたので、F問題にいきました。
紆余曲折あってF問題を通しました。N<=2000でTL10sならO(N^3)が通ってしまうんですね~
最後に残ったD問題で、O(N(logN)^2)の解法を書いたものの、サンプルが合わないままコンテスト終了時間となりました。全完がかかっていたので、悔しかったです。
DのペナルティがO(N^2)で、手元でO(NlogN^3)を書いていて間に合わなかったんだよね
— heno (@heno_code) 2021年3月17日
↑この人、O(N(logN)^3)とか言ってますが、O(N(logN)^2)です。記憶が正しければ、二分探索していないのに二分探索分のlogを生み出しています。
-
コンテスト後
コンテストが終わったので、オンサイト(オンサイトではない)イベント特有の"""渾身の懇親"""をします。
この懇親会場、なんとバーチャルな空間に自分のアバターを投影して、歩き回ったりして動くことで近くにいる人とだけ話せるという、オンサイトの懇親会場を再現するかのような会場となっていました。人々はこの会場をgatherと呼んでいました。
14時にコンテストが終わってすぐにgatherに入場できるようになったので、昼食RTA
高速で昼食をとるパート
— heno (@heno_code) 2021年3月17日
をしつつ、gatherに入りました。
その後、問題の解説やスポンサーの方のお話などがあったのちに、「これを見に来たといっても過言ではない」「ICPCで最も偉大なイベント」「あまりの盛り上がりに地震が引き起こされる」「全米がスーパーハイテンションになった」等と評されている*1、\\\\\\「「「YES/NO」」」////// が始まりました。
YES/NOでは、公式認定YES/NOおじさんが司会をして、まだ結果が明かされていない提出の結果をハイテンションで1つずつ明かしていくことになります。
YES/NOではやはり盛り上がって、gather内で興奮した人々が会場を走り回り、各所で追突して救急車が呼ばれる事態となっていました*2。
YES/NOが終わり、順位の発表がありました。
ICPC asia 横浜大会、2位でした。
— heno (@heno_code) 2021年3月17日
ありがとうございました!!!
うれしい
順位の発表後は20時頃までgatherに残り、懇親を続けていました。
-
余談ですが
gatherでは現実の肉体とgather内のアバターで痛覚が共有されている*3ので、gather内で歩き回った結果、
gatherでめっちゃ歩き回ったから足が痛い
— heno (@heno_code) 2021年3月17日
となりました。
-
まとめ
結果として、今回のICPC 2020 Asia Yokohama Regional Contestは2位で終わることができました。事前の目標として、「1位のKINGには絶対勝てないので2位を狙おう」と思っていたので、無事にそれが達成できてかなりうれしいです。
World Finalへの2回目の出場権を手に入れてしまったので、辞退しない限りはICPCアジア大会はこれで引退です。
未来の2回のWFに向けて、より一層強くなり、最終的にはメダルを取りたいと思っています。頑張ります!
-
おまけ
2021年3月18日の未明。彼は悪夢を見ていた。彼は夢の中でICPC 2020 Asia Yokohama Regional Contest に参加していた。
彼はE問題に提出した。WA。もう1回提出。WA。
彼はもがいたが、結局E問題を通すことができなかった。この世の全ての誤差を恨みながら、彼は夢の世界を去っていった___