ICPC2019 国内予選 参加記
2019/7/12(金)に行われたICPC2019国内予選にチームEldoradoとして参加しました。
チームメンバーは、nicklaw、mhrb、NOSSです。
チームメンバーの参加記
- ICPC2019 国内予選 参加記 - まほろば精進日誌
結果
ABCD4完で順位は41位でした。学内1位で予選突破しました。
本番前
模擬国内のとき:ICPC模擬国内予選2019 参加記
開始直前まで講義が入っていたため、会場入りが一番最後になってしまった。
ちょっとドタバタしながらも開始5分前くらいに準備が完了し、開始を待つ。
本番
Aをmhrb君、Bをnicklawさん、C以降を僕が読む戦略。
問題の印刷が完了するまで時間がかかるので、Aを見守る。ぱっとみて総和のmaxをとるだけなので大丈夫そう。印刷機で待機する。
mhrb君がAを高速にACした頃(5:32)ちょうど印刷ができたので、そのままBをnicklawさん、Cをmhrb君、Dを僕に割り振る。
Dの考察に入ったあたりでmhrb君が「Cが解けました」というので概要を聞く。大丈夫そうだと感じたので一緒にDを考え始める(後にこの時点でのC解法は嘘であることが発覚する)。
mhrb君にDの概要を伝えているうちに思考がまとまって、「これはDPでは?」という考察に至る。手元で遷移を書くとサンプルが合うのでうれしくなる。この時点で4完できそう感じだったので大丈夫そうと思っていた...。
Bを実装しているnicklawさんがバグに苦戦し、コード印刷してデバッグに移る。バトンタッチでmhrb君がC実装に入る。が、Cのサンプルが合わず嘘が発覚する。
またバトンタッチし、Bが通る(1:00:00)。Cの修正がまだかかりそうだったので紙実装しておいたDを書く。サンプルがあったので意気揚々とテストケースを実行する。しかし、無限に実行が終わらない。メンバーに実装を見せると、「ここ壊れてませんか」「ここ高速化できます」と言われたので、裏でそのまま実行させつつDのコードを印刷して修正に入る。
ここから「Cできます!」→「できませんでした...」→「Dできます!」→「できませんでした...」みたいなのを繰り返す。かなり険しい気持ちになった。
ついにCが通る(1:56:37)。残り1時間、ペナが重いので予選突破はDが通るかにかかってきた。
オーダーが全く改善できずつらくなっていると「コンパイル最適化でなんとかなるのでは」とnicklawさんから助言を受ける。試しにやってみると高速にテストケースが実行されている!これはいけそうとなり祈りながら実行を待つ。提出するとAC!(2:02:38) 順位表を見るとこの時点で25位くらいだったので喜びに包まれる。
Eは実装だと分かっていたがチームに実装ゴリラがいないので見送り、Fを全員で考える。いろいろ考察するもそれらしい解は生えず。この間順位表を見る度に順位が落ちていったのでちょっと心配した。
最終的にこのままコンテスト終了となった。
打ち上げ
ICPC国内予選お疲れ様でした!打ち上げ情報です pic.twitter.com/4bci2fHqLh
— 横浜国立大学競技プログラミング部 (@ynu_cpc) July 12, 2019
OBの方のご厚意で打ち上げを行ってくださいました。すごく楽しかったです。
普段お酒を飲まないので思ったより酔ってしまいました。
感想
模擬国内のときもそうだったのですが、かなり危なげない結果でした。Dが通っていなかったら予選通過できていないと考えると怖いです。反省としては、メンバーの考察の誤りを見つけられなかったことと、実装力の不足を感じました。このチームが出せるパフォーマンスはもっと高いと思っているのでアジア地区までに仕上げたいです。
コーチやチーム登録、会場準備をしてくださった先生、先輩、OBの方々、ありがとうございました。横浜大会がんばります。