はじめに
ICPC 2022/2023 国内予選に去年と同じチーム Imperishable (Imperi、0214sh7、ebi_fly) で参加しました。去年の参加記はこちら。
当日まで
個人の力は、去年はhighest基準で黄・青・青だったんですが、今年は黄・黄・黄にパワーアップしました。
去年はチームの連携が全然できていなかったので、無駄な時間をできるだけ減らそう、3人の延べ考察時間を最大にしようみたいなことを意識していました。
模擬国内の前後くらいから、チーム練を2・3日に1回やっていました。
個人ではちょっとずつAOJ-ICPCを進めていました。
当日(コンテスト開始前まで)
traPが各チームに1部屋教室を予約してくれたのでその場所に向かいました(まじで神)。あまり行ったことのない緑ヶ丘という場所で、自然が多かったので気分も落ち着いて散歩して本番までの時間をつぶしてました。
予約した教室に知らない人が何人か入ってきて「ふえ~~~」ってなっていたら相手の方から「予約してますか?ごめんなさいすぐ出ますね」みたいなことを言われて社会性!となりました。
コーチのxxkiritoxxさんに天才みたいなpdfをもらうも、印刷するところないなとなってメモ用紙に適当に使用中ですみたいに書いて貼りました。
ゴミと言われて送られてきたファイルを開くとこれが出てきて笑い談笑していると開始時刻になりました。
当日(本番)
初動はA 0214sh7、B ebi、C Imperiでやる。
B をみると明らかにシミュレーションをやるだけに見えたのでやろうとすると緊張なのか手がプルプル震えて実装も全然まとまらず「無限ループで一生終わらんけど」みたいになり破滅しているとA、Cが通る。Imperiに「できない、やってくれ」と最悪な押し付けをしてDに行く。(下埋めをやっていない付けが...)
ほどなくしてB が通るとDを0214sh7、Eをebi Imperiで見る。
0214sh7「DはDPっぽい」
ebi Imperi 「E構築だしすくがEみたほうがいいかも」
0214sh7「え~そうします」
こうしてDとEをswapして考察する。(これをもっと早くすべきだった)
Imperi 「絶対に区切らないといけない場所と、区切ってはいけない場所、どっちでもいい場所がわかるな。でもこれでちゃんと列挙できてるのか?」
ebi 「こんな感じで判定できそう(ふわふわ)」
Imperi 「ok、実装やって」
というやり取りをしてebiが実装することに。普段自分が実装担当なのでよく実装はしていたんですがBのトラウマがあったのでう~んとなる。
落ち着いてキーボードをカタカタやって、サンプルを試すも0が答えのところで0じゃない答えだしている。
ebi 「区切らないとダメ、かつ区切ってはいけないところの判定してるんだけど」
Imperi 「あ~、先頭の要素が区切ってはいけないときに壊れてない?」
ebi 「それです」
修正してsubmitするとCongratulationsと表示されたので一安心。
残り時間が1時間しかなくてかなり焦る。
Imperi 「Fたぶんできるからちょっとやってみる」
0214sh7 「和が0になる行/列は先頭が+じゃないとダメで、a[0]とa[n-1]、b[0]とb[m-1]の値によって好きに+と-を配置できる場所ができる」
ちょっと時間がたって(残り30分)
Imperi 「やっぱEやるわ」
ebi 「内側を市松模様に塗って、外側が条件に合う配置にできるか判定すればいいんじゃない?」
Imperi 「それ証明ある?」
ebi 「ん?ない」
0214sh7 「時間ないしこれで詰めるしかないな」
めちゃくちゃ場合分けゴリゴリ系っぽくてバシバシコードを書くも詰め切れずタイムアップ。
ABCDの4完で全体29位学内3位だった。学内3位チームは選抜されているチームが20チーム未満じゃないと通らないので敗退になる。
感想
去年の反省でカスな時間は(Bを押し付けてしまった以外)あまりなかったのはよかったが、素直に力不足で負けたという感じ。去年と同じ29位なんですが、ぐおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお。
帰りに東工大で出てる他チームの人と会っていろいろ話しました。交流は大事!
tatyamにEとFの解法を聞いて方針自体はよかったのか~となりました。まあ詰め切れないのは実力不足なんですが。
来年がラストチャンスなので横浜行きたいですね。実力つけて来年リベンジします。
アジアに進む方々は頑張ってください、応援してます!!!!