とりになりたいかものはし

プログラミング(主に競プロ)に関するひとりごとなど

PCK2017予選記事

PCKお疲れさまでした!

結果からいいますと、僕たちのチームは9完1WAでした。あとでも言いますが、この1WAは集中していれば絶対生やさなかったWAなのでとても悔しいです…

わが校のコンピューター部の高校部長である相方は非競プロerなので、どうなのかなーと心配していたのですが、supercon同様、詰まったときに頭を初期化というか、別の方針に切り替えさせてくれる役目を果たしてくれました。あと何よりバグが少ない!1~5をほぼほぼ書き直さずに提出していたのは正直僕より強いなあと思いました。

文化祭前の大事な時期なのにチームを組んでくれた相方に感謝!

 

では当日の流れを箇条書きに

・緊張で5:45くらいに起きる。流れでスマホをいじる←よくない

・学校に行って、wi-fiを特別に接続してもらうためにパソコンを渡す

・HR中LISのdpを蟻本で復習する

・牛ゲーって何だろう→初めて知る、緊張する

・まずい、緊張してまったく授業が聞こえない

・授業終わった!この時点でPCK開始45分前

・プリンターを部室から回収する。

・なんとプリンターからSurfaceにつなぐUSBケーブルがないことがわかり、とても焦る

・なんか先生がうまい具合にやってくれることを祈りつつ飯

・食い終わったらもう開始15分前

・相方が会場に来ない

・5分前でようやく相方到着。ここでプリンターの紙がないことに気づき急いで部室からとってくる

・開始30秒くらい前に戻ってくる、開始とほぼ同時に紙をセット

・6問目プリントアウトしてもらう。

・1問目を早速相方がAC

・7問目をプリントアウトしてもらう。

・7はぱっと見bitDP?こんなめんどい問題出すか?

・6に手こずる→セグ木でえいしよ!(は?)

・2問目を相方がAC

・8問目をプリントアウトしてもらう

・ん?簡単じゃね?

・↑これは罠で、難しい

・8わからんぞ

・3問目を相方がAC

・9問目をプリントアウトしてもらう

・ほほお(面白い問題)

・とりあえず貪欲はわかる

・どうせ平衡二分木か何か使うんか?

・わからずひるどでちょっと焦る

・4問目を相方がAC←ここまで0WA、相方有能

・10問目をプリントアウトしてもらう

・でも5問目も少し見るか

・相方と相談してgcdとかでもにょれば良いとわかる

ペアプロする。小学生の入試問題でもでたなあ、そういえば

・まあこれもAC

・相方が6問目読んでる間に実装する

セグ木の中身をintにしたせいで手元WAをする、15分ほど浪費する

・申し訳なさでいっぱいの中提出→AC

・ここで順位表の存在に気づく

・見るとなんか10位いないっぽい

・7問目の貪欲を相方が提唱する。でもこれは嘘だった。

・結局bitDPでやる。コピー&ペーストを5行×18回やった怖いコードを書く

・うーん、手元で合わない

・焦る(bitDP許さん)

・20分かけて問題文のHとNを読み間違えていたことが判明

・許さないという強い意志の元提出→AC

・順位表見るとまだ10位以内

・焦るな…焦るな…

・8と9を考える

・8の貪欲を相方が提唱する。でもなんか僕の競プロ的センサー(笑)ではそれは嘘っぽいって言っておく

・8問目、二分探索+尺取りでできるか!?

・できそうだけど、尺取りは絶対バグるので二分探索に変換する

・実装し終わる→手元でWA

・なんと20分かけて、それは1145148101919をintにぶち込んでいたせいだと判明

・正直死にたくなった(もっと強く生きろ)

AC←この時点で終了まで40分

・ここで順位表を見ながら一休憩

・俺たちもし9完0WAだったら2位になるんじゃね!?とか言う。

・10問目を考える

・強連結をつぶして、あとは残ったDAGに適切に辺を張りたい…みたいなことを相方に説明する

・↑一番長いパスを貪欲につぶせば?と相方が言う。でもなんか僕の競プロ的センサー(笑)ではそれは嘘っぽいって言っておく

・↑この僕の発言は大嘘で、実は相方が正しかった(せっかくの正しい考察を強連結のごとくつぶした僕は害悪では?)

・9問目に移行

・平衡二分木+BITを使うとこういうことになる、みたいなことを相方に説明するが、これコストオーバーしないような奴を高速に選ぶのはどうしようかな…とかぼやく

・相方が「それ区間上じゃね?」と天啓を授かる

・↑はい自明セグ木、相方は競プロの才能があるのでは!?

・とりあえず興奮しながら実装

・順位表凍結される→この時点で6位

・なんか事前に用意していたBITが閉区間なのにseg木は半開区間で実装していたせいで僕の頭こわれる

・混乱している中コードを書き上げた→手元では通る…

・①もうちょっとコードを吟味する ②やけくそで提出する

・相方は中立だったが僕は②を推したため(大馬鹿)提出する

・9問目WA_WA_WA_WA_...

・思わず叫んだ

・もう一度コードをにらむと、案の定区間であるものを半開区間にしたりしている

・ちゃんと考察して直す

・提出→やっとAC

・この時点で終了10分前なので試合を放棄する

・11問目もついでに見ておく→まったく理解できない ってなる

・先生と雑談する

・競技終了

・9完1WAなら5位以下だなとか言う。

・先生が僕たちに啓発(?)されてVSを入れたらしい→これは競プロをするしかないな、数学科教員だし!→宗教勧誘の断られ方と同じような感じでやんわりと断られた

・相方と雑談、そこそこ幸福なひと時を過ごして終わる。

 

 

まあこの後用事などでTwitterに浮上できなかったのですが、何より相方すごいです!

9問目とか、8問目のデバッグとかで救われました!

あと、凍結時2位のsolarsとか4位のdisprogramとかはすごーく速く解いていて、地力の差を見せつけられた感じですね…

何より僕がエンバグをしすぎているというのがありました…本選またはもう一つの本選までに実装力も鍛えなきゃなあと感じました。

まだ順位や通過の可否などはわかりませんが、結果が出たらまた追記しようと思います。