AtCoder Regular Contest 135 A問題 Floor, Ceil - Decomposition
問題
提出解答
問題の概要
黒板には整数 が書かれている. 以下の操作を任意回行う.
- 黒板に書かれている整数を1つ選び, それを とする.
- 黒板に書かれている を1つ消し, を書き加える.
この操作後, 黒板に書かれている整数の総積の最大値を求めよ.
制約
解法
黒板に 個の整数 が書かれているとき, それぞれの整数について独立に考えることができる. 従って, どのような整数について操作すべきかを考えれば良い.
ここで, 一般的に非負整数 に対して, となるのはいつかを考えると,
である. そして, とする. すると, であるから,
である.
ここで, の場合は操作前後で総積は変わらないので, 操作しないことにすると,
以上の整数に対して操作すべきである.
最初の整数が のときの答えを をすると,
である. よって, を求めるためにはこの関係式を用いてメモ化することにより, 回の再帰で求められることができる.
最後に, を求めるために必要な の の個数について考えると, 実はある整数 を用いて と表せる場合だけでよい. よって, 再帰の各段階においての は高々 個なので, この問題を で求めることができた.