题目描述
FJ想N头牛(公牛或母牛)排成一排接受胡总的检阅,经研究发现公牛特别好斗,如果两头公牛离得太近就会发生冲突,通过观察两头公牛之间至少要有K(0<=K<=N)头母牛才能避免冲突。 FJ想请你帮忙计算一共有多少种放置方法,注意所有的公牛被认为是一样的,母牛也是,所以两种放置方法被认为不同当且仅当某些位置牛的种类不同。
题目解析
简单的递推 直接见代码
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std
;
int n
,k
;
int f
[100005];
int main()
{
scanf("%d%d",&n
,&k
);
for(int i
=0;i
<=n
;i
++)
if(i
<=k
) f
[i
]=i
+1;
else f
[i
]=(f
[i
-1]+f
[i
-1-k
])%5000011;
cout
<<f
[n
];
}
转载请注明原文地址: https://mac.8miu.com/read-494527.html