公牛和母牛
Description
FJ想N头牛(公牛或母牛)排成一排接受胡总的检阅,经研究发现公牛特别好斗,如果两头公牛离得太近就会发生冲突,通过观察两头公牛之间至少要有K(0<=K<=N)头母牛才能避免冲突。
FJ想请你帮忙计算一共有多少种放置方法,注意所有的公牛被认为是一样的,母牛也是,所以两种放置方法被认为不同当且仅当某些位置牛的种类不同。
Input
第一行:两个空格隔开的整数N(N<=100000)和K。
Output
输出一个整数表示方法总数,答案可能很大,所以只需输出mod 5,000,011的值即可。
Sample Input
4 2
Sample Output
6
Data Constraint
Hint
【样例说明】
以下为6种放置方法,‘B’表示公牛,‘C’表示母牛
CCCC
BCCC
CBCC
CCBC
CCCB
BCCB
.
.
.
.
.
.
.
程序:
var
n,k,i:longint;
dp:array[0..100005]of int64;
begin
read(n,k);
for i:=0 to n do
if i<=k then dp[i]:=i+1 else dp[i]:=(dp[i-1]+dp[i-k-1]) mod 5000011;
write(dp[n]);
end.