求助,程序RE了
#include<iostream>
#include<string.h>
using namespace std;
int n,m,ans=0,dp[35][35];
int k(int x,int y){
if(dp[x][y]!=-1)return dp[x][y];
else{
if(y==1){
if(x==n||x==2){
dp[x][y]=1;
return 1;
}
dp[x][y]=0;
return 0;
}
else{
if(x==1){
dp[1][y]=k(2,y-1)+k(n,y-1);
return dp[1][y];
}
else if(x==n){
dp[n][y]=k(n-1,y-1)+k(1,y-1);
return dp[n][y];
}
else{
dp[x][y]=k(x+1,y-1)+k(x-1,y-1);
return dp[x][y];
}
}
}
}
int main(){
memset(dp,-1,sizeof(dp));
cin>>n>>m;
cout<<k(1,m);
return 0;
}