足跡-sokuseki-

りかの日進月歩の記録

ICPC2019 国内予選 参加記

noy先輩Hao君と一緒に「UnRated」というチームで出場しました。
3完54位でした。
f:id:wk1080id:20190713022124p:plain

〜前日

チーム練は3回くらいしたと思います。
HCPC 2019 Virtual Vol.20 - 足跡-sokuseki-
ICPC2019模擬国内予選 - 足跡-sokuseki-
four-t practice 2019 Vol.12 - 足跡-sokuseki-

国内突破には4完が必須なので、ABCを早くACしてD以降の考察に時間を割きたいと思っていました。
何度かチーム練して、ABCを自分とnoy先輩で考察&実装、D以降をHao君に考察してもらう戦略を立てました。
自分は今年でICPC引退なので、悔いの残らないようにしたいなあと思って個人でAOJ-ICPCをいっぱいときました。

コンテスト前

15時ごろに大学に着きそうだったので2人にpracticeを任せる。
ライブラリを印刷したやつと蟻本とティッピーを持って部屋に行く。

実装練習にICPC2017国内Cを解く。
チーム練では自分のPC(JIS)を使っていたのですが、突然外付けUSキーボードを使うことになり焦る。
さらに、プリンタを接続して印刷テストしようとしたらPC側でプリンタを認識してくれなくて、これどうするの?使うPC変える?とかいう話になる。(3人はみんなMacBookだけどエディタ等の環境がバラバラすぎるのでア)
いろいろググったりして試行錯誤したところ、開始20分前くらいにうまく認識してくれるようになったので、一安心。
ぞいぞい。

コンテスト

ACを自分が、Bをnoy先輩が、DをHao君が担当することにして、Aから読む。やるだけなので書く。AC。Bの方針を聞いて良さそうなので書いてもらっている間にCを読む。
Cがちょっと難しそうなのでHao君と一緒に考えると、右に載せる分銅と左に載せる分銅をビット全探索すれば0かどうかの判定はできることがわかる。1つ追加して〜のところがよくわかんないなーとか言ってるうちにBがかけたみたいなので見る。answerとprogramをまちがえそうになりながらもAC(複数人で提出チェックしててよかった)。
Cは右と左を全探索すると、そのとき必要になる分銅が一意に決まるので、その重さの分銅がすべてのAiで必要であればそれが答えとなりうるみたいな考察をして、実装する。Hao君に3^Mって言われたけど、計算量的に4^Mでも大丈夫そうだったので、4^Mを書く。


↑いかにもすんなり通りましたみたいな書き方をしているんですが、実はデバッグ出力と答えを見間違えていて「は?答えが出力されてないやが」とか言いつつ、解法が出てたDに実装を変わったりして、20分ほど溶かした(バカか?)。
DはCを実装している間にDP解が浮かんだらしくて、C終わった後に聞いたけどよくわからなかった(は?)。E以降を読んで解けそうなのを探したりしてると、Dのサンプルが合わないらしいので、Dを一緒に考えることにする。Dは区間add区間minの遅延セグ木でできるんじゃない?とかいう嘘解法をはやしつつ順位表を見てみるとEが0ACでFにACがでているのでFを考えてみる。FはAtCoderぽいな〜(Dもだけど)とか言いつつわからないのでDに戻ってくる。順位表をみるとEもACがでてきたので、noy先輩にEを任せてDの遅延セグ木解のコーナーを探す作業をしてた。コーナーみつからないのでサンプルあうか試そうとおもってコードを書いていると、Eは実装激重やるだけゲーらしいのでPCをnoy先輩に譲る。ここで残り45分くらい。Dは諦めてHao君とFを考えてた。
ラスト1分くらいでEの実装が終わったけど、サンプルが合わず終了。

コンテスト後

4完がアジアボーダーだと思っていたのですが、4完以上のチームが少なく、3完でもアジア行けそうな感じがする。
焼肉を食べた。


感想とか

Cのバカがなかったら10個くらい順位上がってたので泣いてる。
ICPC引退が(たぶん)半年延びたので嬉しいです。もっと精進したいです。