いちごくん

競技プログラミングの話をしたり

ICPC国内予選参加記(itigo視点)

あらすじ

5完16位、国内予選突破やったーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー★★★★◎◎◎\^^/ddddddd

 

僕の名前はitigo、北海道大学M1、ギリギリ黄色の競プロer

ICPC予選は今年で5回目、いままで4回は全て予選落ちしていました。(結構行けそうなチームだったんだけど)

最後の年となる今年は5回連続一緒に出てるM2のpitsuさん、とんでもない勢いで成長してるB2のtardigrade君と僕のチームtatitsuで参加しました。

 

事前戦略

僕(itigo) : 初手B問題を担当、その後は他二人の様子を見てCかDの考察を行う。基本的には考察担当で、実装は可能な限りpitsuさんに任せる形。

pitsuさん : 実装マシーン。初手A問題を担当し、終わり次第tardigrade君とC問題の考察をして実装、D以降も可能な限り実装を担当する。

tardigradeくん : 考察マシーン。初手Cを考察、Cが解け次第D,Eの考察。他の人がバグったときのデバックも彼の仕事、メッチャ便利。

 

全体戦略:

・まだ問題を見てない人に先に問題概要を説明しない。問題文より分かりやすい問題説明はこの世に無いという結論。口で説明してしまうと結構誤解を生むし、説明側の考察時間も損だし、二人とも誤読するリスクもある。

・バグったらとりあえず印刷。バグってんのにパソコン使うな。デバックは印刷見ても可能だし、他の人もデバックしやすい。ペーパーモア化を促進しよう。

 

本番

開始4分

pitsuさんがAをAC。3:52で7位らしい。早過ぎ、これ解き始める前に問題印刷してるのでマジでおかしい。

開始15分くらい

僕がBをWA。なーーにやってんだーーー。Cの考察が終わってなかったっぽいのでそのままパソコンを続行、一か所バグを直してもう一回提出してWA。ヤバすぎ、とりあえずコピーしてCのpitsuさんにPCをパス。tardigrade君とBをやる。

開始31分

pitsuさんがCをAC、俺以外のチームメイト優秀過ぎ。ありがとううううううううううううう。僕がBを「線を置く位置を全探索する」方針で実装開始。

開始40分

Bを実装中に気づく。「これ、xとyの出力順逆じゃね?」。以前のWAコードのサンプルを見るとマジで逆だった。このコードの出力順を変えて提出するとAC。これは戦犯。チームメイトにはWAの原因を内緒にしてDに行く。

D問題

先にpitsuさんとtardigradeくんが考察してる。ちゃんと聞いてないけどDPしてるっぽい?けどDPは二人に任せて僕は一人で考察。割とすぐに「これ、答え高々7じゃないか?」になった。(偉い!)6個以下を再帰で全探索すればええやんけ。これを二人に報告。

pitsuさんをPCに座らせて僕が後ろでpitsuさんをラジコンにして実装。言った通りにすぐ実装してくれる。カッコイイ楽しい。なんかメモリが何たらでしばらく沼ってたけど1:31:06でAC。

予選突破がかなり安全になった。

E問題

皆で一緒にEを始めた。割とすぐに僕がDPで解けた気持ちになって実装開始。なんかバグったけど印刷したらtardigrade君が直してくれた、嬉しい。一回WAになったけどこれも些細なミスで(お前何回ミスするん?)直したらAC。5完した。やったーーーーー。

 

感想

全体として、僕はB,Eの解法と実装、Dの解法とpitsuさんをラジコン操作、3ペナを担当しました。

B問題で沼ったときは吐きそうだった、5年連続予選敗退がちらついた。この後D,Eで活躍で着て本当によかった、本当に。

北大の他のチームのelephant_spaghettiとCactusが普通に強くて、27位と30位なのでDもうちょい沼ってE解けなかったら普通に落ちてた。未来有望だぜ....

普段やらないルールなので練習がめちゃくちゃ大事で、毎回得られるものがあった。特に「バグったら即印刷」は本当に正しくて、これしてなかったら落ちてそう。

 

なにはともあれ予選突破嬉しい!!!!!!!!!!!!!!!

pitsuさん、tardigrade君ありがとう!!!!!!!!!!!!!

横浜でもよろしくね!!!!!!!!!!!!!!!!!!!!