パソコン甲子園2019予選参加記「AはDPのA」

本選の様子はこちらです。

private-yusuke.hatenadiary.jp

チームメンバーと予選前

チームは以下の通りに組みました。

簡単な紹介:

  • 自分(public_yusuke)
    • 元部長
    • コンピュータがないと死ぬ病。パソコンとの出会いが早い。

  • 後輩(season)
    • 現部長
    • 数学徒。強い。数学との出会いが早い。


予選は9/14(土)に行なわれたのですが、私は校内の模試の日と被ってしまいました。しかも担任に大会参加することを伝え忘れたままパソコン室に行く始末。図書室でクラスメイトに会ったのですが、そこで模試を休むことを言い忘れたまま参加していたのがバレて、担任から少しお叱りを受けました。皆さんは大会に参加するときは先生にちゃんと伝えましょうね。先生方ごめんなさい。

予選の数日前、台風15号によって停電、断水などライフラインが止まりました。そんな状況下では数学書も精進もできず、一日一日をどう過ごすか真剣に考えるサバイバル生活を送ることとなりました。*1*2予選当日は親戚の家から電車に乗り、なんとか学校に着くことができましたが、この忙しさの後の予選のため相当厳しいものがあるのではないかと思っていました。それに自分は競プロを休止していたので。

予選準備

  • ライブラリを印刷
  • C++のリファレンス書を持ってくる
  • どんどん交代しながら解こう!と方針を定めた

分担は以下の通り。

  • 自分: 1, 2, 4, 6
  • 後輩: 3, 5, 8

問題の解き方

問題1

まずこれなんですが、問題文を印刷しようと思いプリンタにジョブを与えたのに、なぜかプリントアウトされなかった。そこでちょっと焦りました。
僕が問題を読んで、実装は後輩に任せました。

問題2

後輩に任せたところ、WAを吐いていたので、僕が実装しなおしました。後輩がここで結構焦っていたかと思う。

問題3

後輩がえいってやると解けます。

問題4

もう執筆時点ではほぼ一月経っていて覚えていないのだが、とりあえず全探索してもよいしceil((max-min)/2.)とかでも良さそうな気がする。

問題5

後輩に投げる。

問題6

グルグル回していくと、正方形ができます。その正方形の左上の座標と一辺の長さを持っておいてシミュレーションします。フィボナッチ数列を計算しておくことで、次の正方形の幅や座標を計算することができるので、そのようにすれば通る。

問題7

これわからん。絶対bitDPなんだけど解けなかった。悔しい。

問題8

後輩に(ry

問題9~

ごめんもう読んでない。全然知らない。後輩が考察うまくいっていたみたいで、あともう少しで通せるところまで頑張って予選が終わりました。

結果・感想

1~6, 8を解いて44点(6ペナ)。

  • めっちゃペナを出したが、「通せば良い」の精神で最後まで解いた。
  • 災害で忙しかった後にうまくいってよかった。

凍結時点で24位だったので、終わった後は予想以上にうまくいったことにかなり喜びを感じた。しかし、なかなか予選突破は厳しいだろう(地域枠というのも明確な基準がわからなかったので、キツいのでは)と思っていました。とは言えども後日、本選出場チーム一覧には私たちのチーム名「AはDPのA」が載っていたのでとても嬉しかったです。
本選は参加しているチームの様子を見ても激しい争いとなることが予想されるので、あまり結果を出せるどうかわかりませんが、全力でやっていきたいと思います。

*1:これはライフハックですが、冷えた水を十分大きい容器に入れて足をつけると非常に涼しくなれます。この方法によって、本を読むことができました。(は?)

*2:断水したので近所の井戸から水を汲んでいました。江戸時代か?