沧海一声喵 2018-01-22 05:24:29
点我顶贴
收藏
删除
搞个递推公式就ok,f[n]=2*f[n-1]-f[n-m-1],不过注意用long long,否则只能60分
#include <stdio.h>
int main(){
int i,k,n,m;
long long f[51];
scanf("%d%d",&n,&m);
f[0]=1;
for(k=1;k<=m;k++)
for(f[k]=1,i=1;i<=k;i++) f[k]*=2;
f[m]--;
for(k=m+1;k<=n;k++) f[k]=2*f[k-1]-f[k-m-1];
printf("%lld",f[n]);
return 0;}