Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

パナソニックプログラミングコンテスト(AtCoder Beginner Contest 186)

4完4WA。

各問題

A - Brick

簡単な算数ですね。N / Wです。

B - Blocks on Grid

どう頑張っても、元から詰んであるブロックのうち最小の数より多くはできません。また、それ以上取り除くと純粋に損します。

よって、全ての区画を元の最小値に合わせるのが最適解で、このとき区画に残るブロックの数は最小値 * H * Wですから、もとからあるブロックの総数からそれを引けば、取り除くべきブロックの個数がわかります。

C - Unlucky 7

全探索すればよいです。10進法の数を文字列に変換して'7'がないか調べる、8進法の数に変換してさらに文字列に変換して'7'がないか調べるみたいにしても余裕で間に合います。

D - Sum of difference

まずAをソートします。それからD[i] = A[i + 1] - A[i] (0 <= i < N - 1)を取っていきます。

全ての計算の過程で、D[0]N-1回、D[1](N-2)*2回、D[2](N-3)*3回という具合に(N - i - i) * (i + 1)回登場しますので、それを全部計算して足し上げます。

私は手計算したときに何かをミスっていたようで、パスカルの三角形になると思いこんで答えが合わない合わないをしていました。結局4WA出してしまい、通したのは残り2分を切っていました・・・。

E - Throne

とりあえず愚直解を書いたところ、大きな数字だと答えが帰ってこず(それはそう)、小さな数字でも正しい答えが出なかったので(愚直解とは・・・)諦め・・・。

F - Rook on Grid

手付かず。

まとめ

D、はまるような問題じゃないのに変なはまり方をしてしまいました・・・。うーん、頭が回ってなかった。まあそういうときもありますか。

f:id:mdstoy:20201219225533p:plain