Description
您有 N 个格子,排成一行,从左往右编号为 1,2,⋯,N。您站在 1 号格子的左边无限远,开始从左往右跳,跳到 N 号格子右侧为止。由于您是一位成功的 OIer,您自然长得很胖,所以您的腿部力量也非常大!这使得您跳一次,当前格子到目标格子中间必须至少空出来 M 格,但您可以跳无数格远!
您认为这么跳太没意思了,于是便想计算出有多少种方案可以跳完全程。由于方案可能过多,您会输出方案数量模 (109+7) 的值
方案不同当且仅当经过的任一一个格子编号不同。
第一行两个整数 N,M。
一个整数,表示跳完全程的方案模 (109+7)。
5 1
13
6 2
13
Hint
| 测试数据编号 |
N |
M |
| 1,2 |
≤10 |
=1 |
| 3,4 |
≤107 |
| 5,6 |
≤106 |
=2 |
| 7,8 |
≤105 |
=3 |
| 9,10 |
≤104 |
=5 |
| 11,12 |
≤1012 |
=1 |
| 13,14 |
≤1018 |
=10 |
| 15∼20 |
=15 |
对于 100% 的数据,满足 1≤N≤1018。