dp.
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 100500 #define mod 5000011 using namespace std; int n,k,dp[maxn][3],sum[maxn]; int main() { scanf("%d%d",&n,&k); dp[1][1]=dp[1][2]=1;sum[1]=1; for (int i=2;i<=n;i++) { if (i>k+1) dp[i][1]=sum[i-k-1]+1; else dp[i][1]=1; sum[i]=(sum[i-1]+dp[i][1])%mod; dp[i][2]=(dp[i-1][1]+dp[i-1][2])%mod; } printf("%d ",(dp[n][1]+dp[n][2])%mod); return 0; }