#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;cin>>n>>m;
int dp[33][33];
fill(dp[0],dp[0]+33*33,0);
dp[1][0]=1;
for(int i=1;i<=m;i++){
dp[1][i]=dp[n][i-1]+dp[2][i-1];
for(int j=2;j<n;j++){
dp[j][i]=dp[j-1][i-1]+dp[j+1][i-1];
}
dp[n][i]=dp[1][i-1]+dp[n-1][i-1];
}
cout<<dp[1][m];
return 0;
}
参考大佬的dp思路,想不到想不到。。。