任意の数 s を k-bonacci数の同じ数を使わずに、和で表現できることの証明
http://codeforces.com/contest/225/problem/B
この問題をgreedyでとける証明
k-bonacci数列とは
となる数列のことです。
たとえば k = 2の時、 となります(fibnacci数列)
[1]
まず、i = 2..k+1 において、
これは数学的帰納法で証明可能
よって、 となる数Sは、の和を用いて Sを表すことができる
[2]
次に、 の時
なるmを一意に選択できる。
と置くと
が成り立つことより(帰納法で証明可)
つまり、 となる
ここで、 なる m'を一意に選択可能で
かつ m' < m である (∵ m >= m'+1)
この時、 S' <= 2^kなら[1]、そうでなければ[2]に当てはめることができるため
greedyで可能