ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

みんなのプロコン 2019 C - When I hit my pocket...

問題
提出コード

解法

とにかくビスケットが増えるように操作を行います。
まず、ビスケットがA枚になるまでは、ビスケットをたたいて1枚増やす操作しか行うことができないので、たたきます。
この時点でK回に達していれば、その時点で操作は終了です。
A枚になったら、A枚→1円→B枚という操作と、A枚→A+1枚→A+2枚という操作のうち、良い方を選べばよいです。
前者の方がよくなるパターンは、結局
B - A \gt 2
となる場合です。
この際は、(残った操作回数)/2回、B-Aを増やす、という操作を行います。そして、最後にもし端数、つまり1回だけ操作が残っていれば、たたいて1枚増やせばよいです。
B - A \leqq 2の際は、最後までたたき続ければよいです。
結局、1つの式にうだうだとまとめるとこんな感じになります。
A + max(B-A,2) \times \frac{K - A + 1}{2} + (K-A+1) \%2
(ただしK+1 \leqq  Aの際はKが答えです)

感想

すごい素直な問題だと思っています。とにかく増やす操作を行いたいので、貪欲以外思い浮かびませんでした。とくに証明もせずさっさと書いてしまいましたが、提出直前で400点ということもあり逆に不安になりました。結果的には通ったのでまぁよかったです。