足跡-sokuseki-

りかの日進月歩の記録

ICPC2017国内予選 参加記

ICPC国内予選に出ました。

参加記を書くまでが国内予選みたいな風習があるっぽいので書きます。

ACM-ICPC 2017 国内予選

 

予選前

 

去年のチームは同学年3人で組んでいたので今年も同学年で組むか〜となって、yebi君(@sigsigma19)としゅもん君(@shumon_84)と組むことに(去年とメンバーは違う)。

1回生たちも出るみたいだから負けたくない!って3人でずっと言ってた(これがフラグとなる)(たぶん)。

6月末に部内コンでチーム練を始めたら、1回生チームたちと互角の戦い(ほんまか?)をしていて、これはやばいとなる。

 

模擬国内は3人で出て、2完でした。B問題を担当してバグらせながら通した。

1回生に負けたのでお通夜だった。悲しいね。

f:id:wk1080id:20170715123629p:plain

 

本当に予選で1回生チームに負けることが現実的になったので、それから予選までの2週間はおびえていた。

部内コン(AOJ-ICPCの問題以外も含まれている)では1回生に負け続け精神的負担が大きかった。今年の1回生はプロが多い。っょぃ。

 

前日は(きっと使わないであろう)ライブラリをいくつか印刷した。あと、超健康児(?)なので日付が変わる前に寝た。

予選当日は普通に授業日だったので直前まで授業を受けていました。

 

 

予選開始

 

とりあえず問題文の印刷が終わるまでyebi君がA問題を解くという話だったので、A問題を任せる(といいつつ印刷に時間がかかっていたので3人で見てた)。O(N^2)の全探索が間に合うのでそれでいこうとなってyebi君が書いてA問題をAC。 そのころに問題文が来たので、B問題を読んだ。yebi君がC、しゅもん君はDを考え始める。B問題は前から見ていくだけでできるでしょ!wとなったのでコーディングを開始。が、実装が終わってサンプルを試すと合わなかったので、印刷クエリを投げて、yebi君に替わってCの実装をしてもらうことに。その間紙デバッグをしていた。Dはなんか二部マッチング臭がすると言われて、誰も書けないのでDは諦めるか〜みたいな話をした。しゅもん君には他の問題に目を通してもらうことにした。

Cの実装が終わってサンプルが合わないようだったので、コーディングを替わってもらった。Bはサンプル出力が合ったのでsubmitしたらWAでつらい気持ちになった。 印刷クエリを投げてyebi君に交代したら、Cが通った。プロ。

自分はというと、サンプルが合ってるのにWAでどこが間違っているかわからなかった(世界一頭が悪い)ので、しゅもん君にB問題をバトンタッチして他の問題を考察することにした。Eの構文解析は全くできる気がしなくてパスして、Fの折りたたむやつは去年の会津合宿の立命セットぽさを感じて(よく考えたらそうでもない)、無理そうな雰囲気を感じ取った。Gはdfsかbfsでできそうな感じがした。Hは幾何だから考えたくもないと思って放置。

一番できそうなGの考察をyebi君としていた。各部屋を1度しか通れないことから、対角線に移動するのは不可能だとわかるので、宝の取り方は左上->左下->右下->右上->左上の順番だけ考えればいいということがわかる。宝の場所に移動するまでに遠回りをすると通ることのできない場所が増えてしまうので、最短距離のルートで通ればいいんじゃないかとなる。しゅもん君の実装が終わり次第yebi君にGを実装してもらうことにしてHを考えてみる。

Hは移動する頂点と移動先の頂点を決めれば、2回の移動で頂点を重ねられることと、5回以上の操作が必要な場合はそこで計算をやめていいので、場合分けすればいけるか?となった(が、幾何ライブラリはあるものの使いこなせないので無理ゲー臭がしたので諦めた)(あと、幾何ライブラリを写すのに時間がかかりすぎる)。

しゅもん君がバグらせながらもB問題を通してくれたので、Gをyebi君に書いてもらう。

その間にEを少し考察したが、できそうにないので、しゅもん君とともに実装を見ていた。最後まで実装できずにコンテストが終了。

  

結果は3完99位でした。

 

f:id:wk1080id:20170715131642p:plain

 

 

なお1回生チームに負けた。先輩ってなんですか。後輩がプロなので先輩を名乗るのをやめたい気持ちでいっぱい。 

 

 

予選後

 

 

部室で菓子パしながらゲームとかで盛り上がってた。

22時くらいに警備員さんにはよ帰れって追い出されて辛かった。 

 

 

そういえば去年の国内予選でもBをバグらせてACできなかったなあとか思い出して悲しい気持ちになった。成長できてないじゃん。実質バグ担当。つらい。

 

次のチーム戦はおそらく会津合宿になるだろうから、それまでにもっと(主にグラフ系の)知識をつけたいなと思った(その前に簡単な問題をバグらせる癖を直したい)。

 

チーム名について

 

ICPC参加登録の直前まで名前がきまっていなくて、どうしようとなったときに、素数うさぎ関連にしないかということになって(ぼくが言い出したわけではない)、Prime Rabbitになった。が、某がごちうさ要素を入れてもいいんじゃないかとか言い始めたので、アルファベット数が575になる「prime rabbits house」を提案してみたらなぜかそれでいくことになった。なんでみんなそんなに素数うさぎが好きなんだろう……。