TDPC F - 準急
駅1,...,iまでの停車駅の組み合わせをf(i)通りとする。K−1駅目までは止まるかどうか自由に選べるので
f(i)=2f(i−1)(2≤i<K)
である。K駅目以降は、すでにK−1駅連続で止まっている場合に停車できないため、このパターンを数えて2f(i−1)から引かなくてはいけない。端的に言うと、f(i−1)通りの組み合わせの中でi駅目に停車できないのは(停車を○、通過を✕で表すと)
|
|
|
|
|
|
|
|
|
駅 |
1 |
… |
i-k-1 |
i-k |
i-(k-1) |
… |
i-1 |
i |
停車 |
|
|
|
✕ |
○ |
… |
○ |
|
というパターンのみである。したがって、
f(i)=2f(i−1)−f(i−k−1)(K≤i<N)
という漸化式が立つ。
最後に、N駅目には必ず止まるので特別扱いして
f(N)=f(N−1)−f(N−k−1)
となる。
さて、大枠はこれでよさそうなのだが、境界ケースについて考えてみる必要がある。まず、K駅目に停車できないのは1パターンのみなので、K<Nならf(K)=2f(K−1)−1。また、K+1駅目には必ず止まれるのでf(K+1)=2f(K)である。上の漸化式と比較すると、f(0)=0,f(−1)=1とするとつじつまがあっていることがわかる。