season's quarterly

数学/物理/プログラミング

PCK2019予選参加記[AはDPのA]

本選はこちらです。
season1618.hatenablog.jp

チーム紹介と当日まで

弊校のパソコン部(今年の5月に部に昇格したばかり)は、4チームが参加登録をしました。
我々はチーム名AはDPのA(先輩public_yusuke (@public_yusuke) / Twitter,僕season (@season1618) / Twitter)で出場しました。他の3チームは全員1年生です。ちなみに先輩は同じ日に学校で行われていた模試をサボって参加しました。競プロerの鑑ですね(模試は後日受けた模様)。
予選の1週間前に台風15号が来て、停電した上インターネットも使えなくなり、精進どころではなくなってしまいました。電車も運休して、車のガソリンも補充できるかわかりらなかったのですが、幸い金曜日の朝に電車が動き、夜に停電と電波障害が解消しました。ライブラリをslackに貼ることもできました。とはいえ1週間も競プロに触れていない状態で、先輩も受験勉強のため競プロを休止しており、結構厳しい状況だったのではと思います。

予選当日

準備と分担

  • ライブラリをslackに貼り、印刷する。
  • 学校の図書館からC++リファレンスを借りる。
  • 先輩...1,2,4,6
  • 自分...3,5,8

問題の考察

問題1 柴犬の数

先輩が問題を読んで僕が実装しました。R+B+W+Gを出力すれば良い。

問題2 アスキー文字

最初僕が実装したのですが、早速エラーを吐きました。先輩に投げます。開始3分にして精神を病むゲームと化した。

問題3 2の累乗

律儀にwhileでやると良い。

問題5 ねこのあな

論理的に甘かったためまたエラーを吐きました。自分のプログラミング苦手説が浮上。

問題7 アカベコ20

ぱっと見で自分の苦手な問題だなあと思いつつしばらく考察したが、解けそうにないので問題8に移ります。

問題8 矢印

これも随分と右往左往したのですが、結局は駒が両端に寄せられた状態で落ち着きます。最初駒を全て右端に寄せておきます。左から順に見ていって、左矢印より右矢印の方が多くなったところで左端に寄せます。カウントをリセットして同じことを繰り返します。

問題10 トーナメントの記録

この時点で順位表を見ると、24位と思ったより良い成績でした。他のチームの状況を見る限り、解くとしたら問題9より問題10であると判断します。実際しばらく考えて木DPをすればいいとわかりました。グラフ理論楽しい。残り時間30分。実装を始めますが、ライブラリ含めて実装が下手くそだったため、間に合わず終了。後日AOJで無事ACしました。

結果と感想

  • 結果は1~6,8の44点(7完6ペナ)、順位表凍結時点で24位でした。

  • 時間制限よりペナルティの方を優先すべきと認識していながら、問題をよく読まなかったりテストしなかったりして、余計なエラーを吐いてしまった。
  • 練習はしなかったが、二人でいい具合に問題を分担・相談できたと思う。

凍結時点で24位だったので可能性はあると思っていたが、残り30分でどれだけ順位が入れ替わったか、地域枠がどのようなものか把握していなかったので、かなりうやむやだった。結局地域枠で本選出場を果たすことができたので、とても嬉しかった。本選で結果を出すのはほぼ不可能でしょうが、悔いのないように頑張りたいです。