本文主要是介绍2018.02.05【GDOI2018】模拟C组——公牛和母牛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
Hint
【样例说明】
以下为6种放置方法,‘B’表示公牛,‘C’表示母牛
CCCC
BCCC
CBCC
CCBC
CCCB
BCCB
程序
varn,k,i:longint;f:array[0..100001] of longint;
beginreadln(n,k);for i:=0 to n doif i<=k then f[i]:=i+1else f[i]:=(f[i-1]+f[i-k-1]) mod 5000011;writeln(f[n]);
end.
这篇关于2018.02.05【GDOI2018】模拟C组——公牛和母牛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!