努力学习的菜鸡🐔:#include<bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
int main(){
int n,m;
cin>>n>>m;
if(n<=2){
cout<<1<<endl;
}
vector<vector<vector<long>>>dp(n+1,vector<vector<long>>(m+1,vector<long>(m+1,0)));
for(int i=1;i<=m;i++){
dp[i][i][0]=1;
}
for(int i=3;i<=n;i++){
// 第二层表示这一步迈出的台阶数
for(int j=1;j<=min(m,i);j++){
// 第三层表示上一步迈出的台阶数
for(int k=1;k<=min(m,i);k++){
if(k==j){
continue;
}
for(int s=0;s<=min(m,i);s++){
if(s==j||s==k){
continue;
}
dp[i][j][k] += dp[i-j][k][s];
dp[i][j][k]%=mod;
}
}
}
}
long long sum=0;
for(int j=1;j<=m;j++){
for(int k=1;k<=m;k++){
sum+=dp[n][j][k];
sum%=mod;
}
}
cout<<sum<<endl;
return 0;
}
投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了: