K好数
有点坑 在他这里 0不算一位数
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
const int maxn=1005;
const int mod=1000000007;
long long dp[maxn][maxn];
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)==2){
for(int i=0;i<n;i++)
dp[1][i]=1;
for(int i=2;i<=m;i++){
for(int j=0;j<n;j++){
int ans=0;
for(int k=0;k<n;k++){
if((k-j)==-1||(k-j)==1) continue;
ans=(ans+dp[i-1][k])%1000000007;
}
dp[i][j]=ans;
}
}
long long ans=0;
for(int i=1;i<n;i++)
ans=(ans+dp[m][i])%1000000007;
// if(m==1) ans=(ans+dp[m][0])%1000000007;
cout<<ans<<endl;
}
return 0;
}

浙公网安备 33010602011771号