ABC115 D - Christmas
問題
提出コード
まずは、レベルバーガーをすべて食べたときの、食べる全体の枚数および食べるパティの枚数を求めます。
食べる全体の枚数をとすると、
となります。
食べるパティの枚数をとすると、
となります。
初期値は、です。
答えは、再帰によって求めることができます。
レベルバーガーを、下から層食べるときに食べることができるパティの枚数
とします。ここから先は場合分けをして求めます。
のとき
なら答えは1、なら答えは0です(問題の制約により、2以上になることはありません)。上記を除き、のとき
答えは0です。のとき
答えはとなります。上記を除き、のとき
この式が意味するのは、レベルバーガーの半分を食べるかどうか、です。
必ずバーガーは奇数になるので、真ん中のパティの分が+1になっています。
このパターンでは、レベルバーガーを1つと、真ん中のパティを食べることが確定しているので、残りの部分だけ調べればよいです。
ということで、答えはとなります。それ以外、すなわちのとき
一番下にあるバン1枚を食べたら、あとはレベルバーガーを食べる問題に帰着できます。
答えはです。
ということで、上のような再帰関数を作成すれば、答えを求めることができます。