memo46

競プロの精進記録その他。

ICPC2021 国内予選 参加記

結果

弊チームUHISHIRO(suta, siro53, kiyoshi0205)は51位、残念ながら予選落ちでした

f:id:bakamono1357:20211105230055p:plain

これまでのチームでの戦績を考えると今までにないぐらいの冷えだったんですが、悔しさで暴れる前にとりあえず色々冷静に書いてみようと思います。

チームメンバーといつもの戦略

  • kiyoshi0205
    • チームのエース 数学/考察系の問題を担当することが多かった
  • suta
    • 問題埋めのプロ オールラウンダーでねっとり重実装もいける
  • siro53
    • 2人には考察力や解いた問題数で大きく劣るので、解法を聞いて頑張って実装することが多かった

コンテスト前

1ヶ月前あたりから週1で大学に集まってチーム練(国内予選の過去問を解く)をやった

恐らくチーム練は弊学で一番やっていたと思う ↓チーム練の跡

https://onlinejudge.u-aizu.ac.jp/services/room.html#UHISHIRO_virtual2

https://onlinejudge.u-aizu.ac.jp/services/room.html#UHISHIRO_virtual3

https://onlinejudge.u-aizu.ac.jp/services/room.html#UHISHIRO_virtual4

https://onlinejudge.u-aizu.ac.jp/services/room.html#UHISHIRO_virtual5

前日に最後のチーム練をし、練習はしっかりやったぞ!という気持ちで本番に備えて早めに就寝した。

当日

午前から大学に向かい、昨日のチーム練の自分が担当していない問題のupsolveをしたり、坑道数式と格闘したりしていた。

ところでこのチーム練のセット(国内2010)のG問題であるレーザー光の反射、かなり好きな問題です(幾何なのであんまり同意してくれる人は少ないかも...)

ちゃんと方針を立てれば実装はかなり簡潔になります。

本番

近頃はコロナが落ち着いてきたこともあり、ワンチャンオンサイトあるんじゃないかということで絶対勝ちたいという気持ちがありました。

当然バチクソに緊張します。

コンテストのURL、ディレクトリ、ファイルの準備はOKであることをしっかり確認し、A : siro53, B : suta, C : kiyoshi でスタート。

Cは構文解析らしいので、sutaのBとswapしたらしい。

Aを読むとシミュレーションするだけなので書いてAC。

kiyoshiがBをほどなくしてAC。この時点では3位でビビる。

Cはやばそうで、僕がDの概要を2人に伝える。DPっぽいがうまい状態の持ち方がわからない。

しばらくするとkiyoshiが「C、全方位木DPじゃん」と言い出し、sutaと2人で分担して書き始める。

↑今思えばここは完全に役割分担を失敗していた。が、その時はgive usがDを通してたので一刻も早く次のACが欲しいという雰囲気になっていたため、難しい......(完全に本番の緊張感に飲まれていた)

やることがないので僕はDの愚直O(N!)を書いて色々実験してみるも何も糸口がつかめず、苦しい。正直な話、たくさん考えているように見えて実質無な時間を過ごしていたと思う(発想一発の考察ゲーに沼った時、大体無の時間を過ごしがち...)

まずいと思いつつEを読むとかなり典型っぽい見た目をしていて2人に概要を共有しようとするがCの実装が忙しそうで断念する。

やっぱりDを放置するのはまずいということでDを考えるも、やはり無の時間を過ごしてしまう。

1WAの末ようやくCが通る。Eをkiyoshiに共有し、sutaがDの考察をすることになる。

概要を伝えると「こどふぉで見たことある」といい、しばらくすると解法が生えたようなので聞いて、実装できそうなので僕がEの実装にとりかかる。

余談ですが、弊チームでは「kiyoshiの解法を聞いてsuta/siro53のどちらかが実装し、考察に強いkiyoshiのリソースを別の問題に割く」というムーブがいつものという感じで、これがハマっていつもレート以上の結果が出せていたような気がします。

Eを僕が実装している間、sutaとkiyoshiでDにとりかかる。この時点でD, Eの2問通さないとアジアは不可能だったので、Eを実装している間かなり手が震えていてとてもまともなメンタルではありませんでした...

ハチャメチャにEをバグらせた後終了20分前になんとかサンプルが合う。しかしこのサンプルはめちゃくちゃ弱いのでなんとも...今からケースを作る時間はない。

Dはもう完全にお通夜で、嘘解法を投げてWAを出す、をずっとやっていたっぽい。

EもWAで通らず、そのままコンテスト終了。

感想

Eはコンテスト終了後しばらくして1箇所致命的なtypoを見つけたので本当にすまん...という気持ちですが、仮にEが通ったとしてもDがかすりもしていない(3分割すら思いついていない)ため、どうあがいても今回のセットでは勝てなかったのかな...と思っています。

先程も言いましたが弊チームでは「kiyoshiの解法を聞いてsuta/siro53のどちらかが実装し、考察に強いkiyoshiのリソースを別の問題に割く」というムーブが日常となっていたため、僕は知識を入れたり典型を多く身につけたり、実装力を高めるためにAOJ-ICPCを埋めるなど、考察の練習をあまり積んでいませんでした。恐らくsutaも実装の練習に力を入れて、考察ゲーはkiyoshiに頼んだ!という感じだったと思います。そのため、kiyoshiが解けなかったら終わり...みたいになっていたのがよくなかったのかな、と思っています(kiyoshiに頼りすぎていた)

最近の国内予選ではねっとりとした実装問題よりも考察寄りの問題で勝負が決まることが多く、傾向をちゃんと把握できていなかったのかな...という気がしています。なんにせよ本当に練習不足だったなぁと思います。

それでも3月の横浜大会から約半年、またアジアに行くぞ!と練習を頑張ったことはいい経験になったと思います。チームのみなさんお疲れさまでした。

とはいったものの今後の情勢次第では海外regionalに行ける可能性もあるので、まだUHISHIROでチーム練をする機会はあると思います。その時はGive usやMSBの尻に火を付けられるように頑張ります!

Give us、MSBのみなさんアジアおめでとうございます!負けて悔しいですが、それでもこの2チームには真におめでたいと思えたので、良い大学に入ったなあなどと思うなどしました。

余談

ところでこれはこの時期ICPCを頑張るB4にありがちだと思うんですが、卒論がやばいらしいです... ;;

誰か助けて