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