i7_yoc's something

数学科…なのか?

PCK本戦

11/9〜10にPCK本戦に出るため会津若松へ行ってきました。

 

[Day 0:11/8]

多くの学校の人たちが前泊している中、自分たちは前泊ができないので家で寝た。

 

[Day 1:11/9]

朝6:30くらいに家を出て、途中で相方と合流して新幹線へ。新幹線で適当に過去問をやろうって話になって解いたらWAが出た。

磐越西線へ乗り換え。公欠でローカル線に乗ってるのは不思議な気分。

 

顧問と合流し会津若松到着。駅から少し歩いたところにラーメン屋があったので入った。おいしかった。そのあと、バスで大学へ。案の定当日勢はほとんどいなかった。

 

開会式。両隣の学校も自分たちと同じ関東地域枠だったので少し話した。

 

さあ、ここからが本質の競技である。

僕らの作戦としては、PCKはペナルティーによって順位が結構上下するので、ある程度解いた後お互いチェックして提出、という方法で戦った。ちなみに予選もそれで成功した。

 

僕は基本的に後半担当なので6〜を解くことになっていた。先に7をみたが、N<=20の場合だけbitDPすればいいことにすぐ気づけたのでよかった。(ただbitDPは気づけても適切に実装する能力が必要なのだが。) 6はN<=40なので半分全列挙を考えた。

 

相方がある程度解いたみたいなのでPCを借りた。が、この時点で開始1時間半くらい経過していたが、まだ1問も出していなかったので、審査員特別賞対象の2をのぞく前半の問題を提出した。5だけWAが出たので先にそっちを修正した。N-KとKを混同しているだけかと思って出したら今度はTLEが出た。よく考えなくてもO(N^2)だったのでセグ木でO(NlogN)にして通す。

 

審査員特別賞の2も変なことしよう、という話になって5で使ったセグ木を2でも使い出す。まあもちろんオーバーキルでACできたが、どうやら審査員特別賞の求めるものと真逆の方向性を行ってしまったようだった。

 

6を書く。半分全列挙を書くが手元でREする。どこがおかしいのかわからなかったので先に解法により自信の持てる7を書くことにした。

 

7を書く。bitDPは案の定最初からうまくいくわけではなかったが、変数の書き間違いをいくつか直したらすぐテストケースが通った。提出すると1発AC。

 

6の半分全列挙を相方に見てもらいながらもう一度1から書き直す。手元ではテストケースが通ったのだが、提出するとWA。ここでもう時間がなかったので、コーナーケースに落とされてる可能性を考えて、変数の初期値とかをいじって提出する、をひたすら繰り返していたがACできぬまま終了。

 

6完3WA、凍結前10位。予選も凍結前10位だったのでこんなところか、って感じ。

 

懇親会へ向かう。相模原中等の人たちが同じテーブルにいたので色々話してた。あと審査員の方のうちの一人が弊校出身らしく、色々話させていただいた。じゃんけん大会で相方が結構最後の方まで残っていたので、せっかくなら図書カードを獲って欲しかったな、と思う。

 

部屋に入る。競技の時もらった風船が浮いている。まあもっとも、競技中は他チームの風船を見なくても手元のディスプレイにある順位表を見て解いた問題数を確認できるのだが。

 

日経コンの2回目があったので出た。ABはいつも通り、かと思ったがBで場合分けを忘れて4WAも出してしまった。Cが解けなかったのでDを解いた。レートが+1だけ上がった。

 

[Day 3:11/10]

まずはモバイル部門の観戦へ。いくつか発表を聞いていたが、アプリもさることながらプレゼン力もすごい。

問題解説を聞きに行く。1〜5,7は僕の考えたのと同じ。6は半分全列挙じゃなくて普通のDPでした。悔しい。12のセグ木をいつか書いてみたいなぁ〜と思いました。

 

飯を食べる。弊校の学食にも存在する唐揚げカレーを食べました。唐揚げの衣が結構カリカリしてておいしかった(唐突の食レポ)。

 

時間があったので売店会津大学グッズ(ペンとノート)を買った。さらに時間があったのでAtCoderをやってた。

 

表彰式とかは特に書くべきようなこともなかったのでここでおわり。