PCK2016予選 参加記録

・前日まで

 

 ・とにかくプロコンやってた思い出しかない。

 ・なかなか眠れず寝たのは5時半

 

・始まる前まで

 

 ・リポビタンD Proを飲んでゲン担ぎ

 ・時間になるまで緊張を紛らわすためにいろんなことしていた

 ・テンプレの準備とか

 

・競技(前半戦)

 

 ・自分はとりあえず5問目までを0WA50分で通すことを目標にスタート

 ・その間にもう一人が6問目以降を考察するという流れ

 ・1問目から提出にいろいろ気を付けていたがさすがにやらかすことはなかった

 ・2,3,4,5と続けてACしここでいったんストップ

 ・6問目でどうすればいいか止まる

 ・7問目の方が明らかに簡単そうだったのでそっちを実装しAC

 ・ここら辺で10問目を捨ててたような

 ・6問目もよくよく見たらいけそうだったので実装してAC

 ・ここまでを1時間20分で終えることができた

 ・いろいろうれしくてハイタッチしてた

 

・競技(後半戦)

 

 ・10問目は捨てたので8問目か9問目へ

 ・相方曰く8問目は問題文が読めない&9問目は実装が浮かばない

 ・8問目は読めたら解ける可能性があったので8問目の解読へ

 ・何とか解読できたはいいがどうすればいいかわからない

 ・データ構造の本に明らかにこれを使えと言わんばかりの凸包

 ・凸包を実装するが、本のサンプルがなぜかうまくいかない

 ・8問目の問題文を見てるとそのまま直さずに流用できると気づく

 ・ここからの闇が深い

 ・問題文的に最少全域木を使うということは分かっていたが、うまい実装方法が思いつかない

 ・あれはどう?といって席を替わり実装する。途中で壁に当たるをn回はする

 ・まずそもそも生成途中のグラフでどうやって最少全域木作るんだってなる

 ・すでに凸包によって作られている辺はコスト0にすればいいんじゃね?という相方の神の一声

 ・サンプルを通ったのでAC と思いきやWA

 ・凸包がやはりまずかった?

 ・出力がなんかまずそう?

 ・とりあえずcoutをやめ、書式制御文字で小数点以下4桁に固定

 ・でもまぁそれだけじゃ通らないでしょ

 ・なんかいろいろいじる

 ・時間内からとりあえず出してみるかぁ

 ・AC

 ・!?

 ・ハイタッチ

 ・9と10を解く時間はなかったので動かない順位表に向かって祈りをささげる

 ・ちらっとN高校の名前を見て驚く

 ・競技終了 8AC1WA 成績枠どうなんだろって位置

 

・競技を終えて

 

 ・Twitterへ集合

 ・公式アカ見たりとかプロたちのツイート見たりする。

 ・9問目と10問目の解法を見てみる

 ・えぇ・・・

 ・たぶん、たぶん本選はいけるので頑張る。

 

・問題解説

 

 ・1問目

  なんか32ビットがうんぬんかんぬんっていう問題

  要するに与えられた整数に32を掛けるだけ

 

 ・2問目

  日の出、日の入か昼間か夜間かを日の半径と水平線で求める問題

  要するにif文の問題

 

 ・3問目

  西暦と和暦の相互変換

  if文の問題その2だったが、凡ミスでWA出す人多そうな問題だった

 

 ・4問目

  土地を少ない数の正方形で余すことなく分ける問題

  whileぶん回しで調べた

 

 ・5問目

  違うようで同じ情報が混ざってるから数えてってやつ

  無難に小さい順に並び替えたのち完全一致があるか調べた

 

 ・6問目

  2枚同時にひっくりかえせるヘラで出来る限り少ない回数ですべてのパンケーキを必要ない回数ひっくりかえそう

  ここで気をつけるのはヘラの回数ではなくパンケーキをひっくり返した回数

  さまざまな方法があると思うが自分はメモ化再帰

 

 ・7問目

  文字列Aから文字をいくつか抜き取って、左から見た時に文字列Bになっているパターンを数える

  正直すぐにDPだとわかったのでメモ化再帰その2

 

 ・8問目

  まず集落を囲む道を作って、その後すべての集落に行けるように道を作る。使わない道は消す。できる限り道の合計が短くなるようにする。

  なんか凸包っていうので集落を囲んだ後最少全域木を作る。

  出力は普通にcoutだともしかしたらダメ?

  printfで書式制御文字で小数点以下4位のみ出力するように固定してみた

 

 ・9問目

  プログラミングコンテストの順位を実況する。

  なんか座圧とBIT使うらしい

 ・10問目

  なんかゲームの中でアイテムがうんぬんかんぬん(問題ちゃんと見てない)

  dp