这是一道简单的DP算法,只要掌握状态函数 a[M][T]=a[M-1][T-1]+a[M-1][T+1]就可以了 #include<iostream> #include<fstream> using namespace std; int main() { ifstream cin("d://1.txt"); int N,P,M,T; int a[110][110]; while(cin>>N>>P>>M>>T) { memset(a,0,sizeof(a)); a[0][P]=1; for(int i=1;i<=M;i++) for(int j=1;j<=N;j++) { if(j>1) a[i][j]+=a[i-1][j-1]; if(j<N) a[i][j]+=a[i-1][j+1]; } cout<<a[M][T]<<endl; } system("pause"); return 0; }