さいどうにっき

趣味や日常などを不定期で書いていきます

PCK2015プログラミング部門予選参加録

予選に参加してから多分2週間か3週間くらい経ってるのにまだ書いてないのを思い出したから頑張る。 ちなみに結果は7完、本選通過ならずだった。地域枠を久留米と鹿児島に持って行かれたのは悔しい。

問題

1問目

パートナーに解いてもらった。

2問目

パートナーと一緒に解いた。 余りの切り捨てを利用した解き方を教える。 定数オーダー最高。

3問目

同上。

4問目

パートナーと一緒に解いた。 条件設定間違えて1WA


ここからは基本的に自分1人で解いてる。

5問目

バケットで簡単にできるのにわざわざSTL使って解いてた。 この辺りが一番頭固い時間帯

6問目

差分で解くまでは思いついたけど変更のやり方が遠回りでプログラムがわかりづらくなっていた。 ここで結構WAが出たがなんとかAC。実は7問目より後に解いてる。

7問目

一度ポインタでやろうとしてミスったけど、Union-Find木を使うことを思いついて無事AC


ここからはACできなかった問題

8問目

正規表現ゲーじゃん!と思ってJavaでやったけどダメだった(当然)

9問目

ぱっと見幾何っぽかったし残り時間少なかったのもあって全然解法が思いつかなかった。

10問目

問題タイトルしか見てない。

反省点

  • パートナーの育成に時間をかけなかった
    実質1週間くらいでC++の基本とかSTLまで色々教えたからかパートナーの頭がついていけず、 僕がコーディングを手伝うことがよくあった。 1ヶ月くらいじっくりできれば、もっと余裕が持てたように思う。
    場合によっては主要なアルゴリズムとデータ構造(今回使ったUnion-Find木とか)まで教えられたかも。

  • 提出前に自分のプログラムを見直さなかった 特に6問目。WAが出てからコードを見直すとすぐにバグの原因が見つかることがよくあり、 そのせいで3つか4つはWAが出ていた。

  • 自分のプログラムが潰されるケースを考えなかった
    テストケースではカバーしていない類の入力があるのは当然だが、そのことに考えが及ばず間違えることがあった。 特に多数の入力(例えば1000文字を超えるようなもの)が与えられる問題では実際に試す余裕がないため、 そういう問題こそしっかり考えて提出すべきだった。

良かった点

  • 必要なものがすぐ思いついた(ACした問題で)
    特に6問目と7問目。 実装の段階でミスをすることもあったが、考えていた解法はだいたい想定解だったと思う(5問目は例外)。

  • 予想より多くの問題を解けた
    多分5完、せいぜい6完だと思っていたが、結果は7完と非常に喜ばしいものだった。 WAはそこそこあったが、地域枠であれば充分に狙える順位までいけたのは本当に嬉しい。 本選行けなかったけど。

最後に

PCKは今年が最後だけど、あまり得意ではなかった競技で結構いい結果を残せて良かった。 本選では惜しくも開発だけの勝負になるが、こっちは得意分野だし普通に30万とPCとお米貰って帰って来ると思う。

ハッカーズ?何それ?おいしいの?