Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3395 Accepted Submission(s):
2188
#include<stdio.h> #include<string.h> #define MAX 110 int main() { int n,m,p,t,i,j; int a[MAX][MAX];//二维数组,表示在第x分钟第y个位置时 //的走法种数 while(scanf("%d%d%d%d",&n,&p,&m,&t)!=EOF) { memset(a,0,sizeof(a)); a[0][p]=1; //第0分钟第p个位置是 for(int i=1;i<=m;i++) { a[i][1]=a[i-1][2];//因为在首部,只有一种走法,就是走向2 a[i][n]=a[i-1][n-1]; //在尾部也只有一种走法,走向n-1 for(int j=2;j<n;j++) a[i][j]=a[i-1][j-1]+a[i-1][j+1]; //其余位置都有两种走法 } //走向左边或者右边 printf("%d\n",a[m][t]); } return 0; }
原文:http://www.cnblogs.com/tonghao/p/4964873.html