#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; }
3 2

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 11:30
仁者伍敌:kpi都懒得刷了属于是
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务